Unity事例ノート

UNITY

行き帰りできるムービングウォーク

一方向だけでなく、逆方向へも自動で進めるムービングウォークを作ってみましょう。

スタート地点から、指定した地点に向かって自動で動いていきます。

逆に、元の地点に戻ることもでき、行き帰りが可能になります。

関連記事:
エレベーターをつくる
エリアに入れば自動で移動(ムービングウォーク)
触れると他の位置へワープする
空間の中でクリックした位置へ行く
指定した座標(目的地点)へ行く
2点間の往復運動をくり返す
2つの座標(目的地)へ行く
触れると2地点を行き来するオブジェクト
斜め上に向けて自動移動

スタート地点とゴール地点をつくる

床オブジェクトとしてPlaneを作成し、Yを-0.5に下げておきます。

空のオブジェクトを作成し、名前をStartStopPointにします。

スタート地点として、座標を変更します。

この子オブジェクトとして、もう一つ空のオブジェクトを作成しましょう。

StartStopPointを右クリックして、空のオブジェクトを作成。

名前をStartRunPointに変更。

わかりやすくるため、アイコンを設定しておきます。

空のオブジェクトが2つ、同じ位置で親子関係になっている状態です。

StartStopPoint、StartRunPointともに、スフィアコライダーを追加。

半径を0.1にして、トリガーにするにチェックを入れます。

続いて、ゴール地点のポイントを作成しましょう。

StartStopPointを複製します。

親オブジェクトをGoalStopPoint、子オブジェクトをGoalRunPointに名前を変更。

位置を、ゴール地点の座標として設定します。

GoalRunPointのアイコンを変更しておきます。

シーンビューを上からみると、このように配置されています。

赤がスタート、青がゴールとなっています。

それぞれの親オブジェクトに、プログラムを追加します。

PointScript.csを作成し、StartStopPoint と GoalStopPoint に追加します。

PointScript.csを記述します。

以上で、スタート地点とゴール地点のオブジェクトができました。

双方向で自動移動できるムービングウォーク

プレーヤーとしてCubeを作成しましょう。

リジッドボディを追加し、位置を変更します。

CubeMove.csを作成し、Cubeに追加します。

CubeMove.csを記述します。

2つのフィールドに、それぞれの親オブジェクトを入れましょう。

StartStopPoint と GoalStopPoint をドラッグ&ドロップします。

スタートのタイミングでは、GoalRunPointを非表示にしておく必要があります。

GoalRunPointのチェックを外しておきましょう。

シーンビューを上から見ると、このように表示されています。

ゲームプレイしてみましょう。

スタート地点からゴール地点、ゴール地点からスタート地点。

行き帰りの自動移動が可能になりました。

関連記事:
エレベーターをつくる
エリアに入れば自動で移動(ムービングウォーク)
触れると他の位置へワープする
空間の中でクリックした位置へ行く
指定した座標(目的地点)へ行く
2点間の往復運動をくり返す
2つの座標(目的地)へ行く
触れると2地点を行き来するオブジェクト
斜め上に向けて自動移動