実現したいこと
プレイヤーについてくる敵の動きを1m動いたら1秒停止して、また1m動くという動作にしたいのですが、方法がわからず困っているためどなたかご教示いただきたいです。
発生している問題
以下のコードでは敵は停止せずにプレイヤーについてきますが、敵が一定の距離を進んだら指定した時間だけ停止させ、また追ってくるという動作をさせたいです。
該当のソースコード
C#
using System.Collections; using System.Collections.Generic; using UnityEngine; //追いかける側 public class EnemyController : MonoBehaviour { [SerializeField] private GameObject targetPlayer; //追いかける対象 private float speed = 0.05f; void Update() { transform.LookAt(targetPlayer.transform); transform.position += transform.forward * speed; //プレイヤーを追いかける } }
C#
using System.Collections; using System.Collections.Generic; using UnityEngine; //プレイヤー側 public class PlayerController : MonoBehaviour { [SerializeField] private float speed = 3.0f; void Update() { if (Input.GetKey(KeyCode.UpArrow)) { transform.position += transform.forward * speed * Time.deltaTime; } if (Input.GetKey(KeyCode.DownArrow)) { transform.position -= transform.forward * 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; } } }
補足情報(FW/ツールのバージョンなど)
Unity 2020.2.7f1
まだ回答がついていません
会員登録して回答してみよう