プレーヤーに向かってずっと付いてくるオブジェクトを作ってみましょう。
3Dの中で移動するCubeの方に向かって、Sphereがずっと追いかけていきます。
関連記事:
ナビメッシュエージェントを使った追尾機能
空間の中でクリックした位置へ行く
自機狙い(プレーヤーに向けた)発射 -3Dゲーム
マウスカーソルを追いかけるオブジェクト
引力で移動しづらくする
ターゲットに向かって直線的に進む方法
プレーヤーの上部で一緒に動くオブジェクト
プレーヤーの動き
CubeとSphereを作成して、それぞれに色をつけ、Sphereを離れたところに配置します。
Cubeを上下左右、前後に移動できるようにします。
CubeMove.csを作成して、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { public float speed; void Start() { speed = 10.0f; } void Update() { if (Input.GetKey (KeyCode.UpArrow)) { transform.position += transform.up * speed * Time.deltaTime; } if (Input.GetKey (KeyCode.DownArrow)) { transform.position -= transform.up * speed * Time.deltaTime; } if (Input.GetKey(KeyCode.RightArrow)) { transform.position += transform.right * speed * Time.deltaTime; } if (Input.GetKey (KeyCode.LeftArrow)) { transform.position -= transform.right * speed * Time.deltaTime; } if (Input.GetKey (KeyCode.W)) { transform.position += transform.forward * speed * Time.deltaTime; } if (Input.GetKey (KeyCode.S)) { transform.position -= transform.forward * speed * Time.deltaTime; } } } |
ゲームプレイして動きを確認します。
【上下左右の動き】は十字キー、【前後の動き】はWキーとSキーで操作します。
3Dで追いかけてくるスクリプト
続いて、Sphereが追ってくる仕組みをつくります。
SphereMove.csを作成して、Sphereに追加しましょう。
SphereMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereMove : MonoBehaviour { private GameObject target; public float speed; void Start () { speed = 0.05f; target = GameObject.Find("Cube"); } void Update () { transform.LookAt(target.transform); transform.position += transform.forward * speed; } } |
ゲームプレイしてみましょう。
3D空間を動くプレーヤーに向かって、ずっと追いかけてくる仕組みが出来上がりました。
transform.LookAtでCube(プレーヤー)へ向きながら、ずっと移動を続けています。
関連記事:
ナビメッシュエージェントを使った追尾機能
空間の中でクリックした位置へ行く
自機狙い(プレーヤーに向けた)発射 -3Dゲーム
マウスカーソルを追いかけるオブジェクト
引力で移動しづらくする
ターゲットに向かって直線的に進む方法
プレーヤーの上部で一緒に動くオブジェクト