実現したいこと
プレイヤーについてくる敵の動きを1m動いたら1秒停止して、また1m動くという動作にしたいのですが、方法がわからず困っているためどなたかご教示いただきたいです。
発生している問題
以下のコードでは敵は停止せずにプレイヤーについてきますが、敵が一定の距離を進んだら指定した時間だけ停止させ、また追ってくるという動作をさせたいです。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5//追いかける側 6public class EnemyController : MonoBehaviour 7{ 8 [SerializeField] 9 private GameObject targetPlayer; //追いかける対象 10 11 private float speed = 0.05f; 12 13 void Update() 14 { 15 transform.LookAt(targetPlayer.transform); 16 transform.position += transform.forward * speed; //プレイヤーを追いかける 17 } 18}
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5//プレイヤー側 6public class PlayerController : MonoBehaviour 7{ 8 [SerializeField] 9 private float speed = 3.0f; 10 11 void Update() 12 { 13 if (Input.GetKey(KeyCode.UpArrow)) 14 { 15 transform.position += transform.forward * speed * Time.deltaTime; 16 } 17 if (Input.GetKey(KeyCode.DownArrow)) 18 { 19 transform.position -= transform.forward * speed * Time.deltaTime; 20 } 21 if (Input.GetKey(KeyCode.RightArrow)) 22 { 23 transform.position += transform.right * speed * Time.deltaTime; 24 } 25 if (Input.GetKey(KeyCode.LeftArrow)) 26 { 27 transform.position -= transform.right * speed * Time.deltaTime; 28 } 29 } 30} 31
補足情報(FW/ツールのバージョンなど)
Unity 2020.2.7f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。