ゲームスタートから数秒経過すれば、プレーヤーを追いかけてくるオブジェクトを作成しましょう。
スタートして3秒経つと、Cubeオブジェクトを追尾します。
関連記事:
エリア内にn秒間滞在すれば実行
一時停止のオブジェクトをn秒後に再始動
出現してから1秒後に落下する
動きが止まればn秒後に呼び出す
デリゲートを使ってn秒後に実行
Invokeを使ってn秒後に関数を実行する
数秒後にオブジェクトを出現させる
プレーヤーが動いた後、相手が動くしくみ
開始n秒後に追尾をはじめる
SphereとCubeを作成し、間隔をあけて配置します。
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 float time; public GameObject target; private float sphereSpeed = 3.0f; void Update() { time += Time.deltaTime; if(time>=3.0f) { transform.LookAt(target.transform); transform.position += transform.forward * sphereSpeed * Time.deltaTime; } } } |
ターゲットのフィールドに、Cubeを入れましょう。
これでスタートから3秒経過したあとに、Cubeを追いかけるようになります。
続いて、プレーヤーである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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private float speed = 3.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; } } } |
ゲームプレイしてみましょう。
ゲームスタートの後、3秒経過すれば、SphereがCubeを追いかけていきます。
関連記事:
エリア内にn秒間滞在すれば実行
一時停止のオブジェクトをn秒後に再始動
出現してから1秒後に落下する
動きが止まればn秒後に呼び出す
デリゲートを使ってn秒後に実行
Invokeを使ってn秒後に関数を実行する
数秒後にオブジェクトを出現させる
プレーヤーが動いた後、相手が動くしくみ