Unity事例ノート

UNITY

ターゲットに向かって直線的に進む方法

ターゲットに向かって、まっすぐ進んでいくスクリプトをつくりましょう。

Vector3.MoveTowardsを使えば、ターゲット(目的地点)や移動スピードをかんたんに設定できます。

クリックした位置にターゲットを置き、この場所に向かって直線的に進んでいきます。

関連記事:
空間の中でクリックした位置へ行く
指定した座標(目的地点)へ行く
エリアに入れば自動で移動(ムービングウォーク)
特定の座標で移動を止める
マウスカーソルを追いかけるオブジェクト
3D空間でプレーヤーを追いかけるオブジェクト
ターゲットに向かってオブジェクトをぶつける

MoveTowardsを使った動き

Plane、Cube、Sphereを作成します。

CubeのY座標は0.5にして地上に出し、リジッドボディを追加しています。

Sphereは、スフィアコライダーのチェックを外し、サイズを0.5に。

こちらもY座標は0.5に設定しています。

まずは、ターゲット(Sphere)に向かって、直線的に進んでいくプログラムをつくりましょう。

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

CubeMove.csを記述します。

▼YouTubeにて、このスクリプトを解説しています。

ターゲットのフィールドに、Sphereを入れます。

ゲームプレイして、動きを確認してみましょう。

目標のオブジェクトに向かって、直線距離で進んでいきした。

今回、Vector3.MoveTowardsの中は、「現在位置、ターゲットの座標、速度」の順に設定しています。

ターゲット位置をクリックで変える

続いて、ターゲットの位置を、クリックで変更できるようにします。

TargetPosition.csを作成し、Sphereに追加します。

TargetPosition.csを記述します。

▼YouTubeにて、このスクリプトを解説しています。

ターゲットのY座標(高さ)は、プレーヤー(Cube)の中心となるように設定します。

ここでは、0.5で設定しました。

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

ゲームビューの、Plane上をクリックすれば、Sphereの位置が変わります。

位置変わるたびに、Sphere(ターゲット)に向けてまっすぐ進んでいきます。

ここで、Sphereを透明にしてみましょう。

Sphereにマテリアルを追加し、レンダリングモードをFadeに設定。

アルベドから、アルファ値(A)を0に設定します。

ゲームプレイして、ゲームビューのPlaneをクリックしてみましょう。

クリックした位置に移動するようなイメージに仕上がります。

関連記事:
空間の中でクリックした位置へ行く
指定した座標(目的地点)へ行く
エリアに入れば自動で移動(ムービングウォーク)
特定の座標で移動を止める
マウスカーソルを追いかけるオブジェクト
3D空間でプレーヤーを追いかけるオブジェクト
ターゲットに向かってオブジェクトをぶつける