NavMeshで巡回している敵についているコライダーとプレイヤーに付いているコライダーが衝突したら、敵がプレイヤーのほうに向かって来て、敵についてるコライダからプレイヤーが出ていったら敵キャラクターを再び巡回するようにしたいです。
該当のソースコード
using
1using UnityEngine.AI; 2using System.Collections; 3 4 5public class Patrol : MonoBehaviour 6{ 7 8 public Transform[] points; 9 private int destPoint = 0; 10 private NavMeshAgent agent; 11 12 13 void Start() 14 { 15 agent = GetComponent<NavMeshAgent>(); 16 17 // autoBraking を無効にすると、目標地点の間を継続的に移動します 18 //(つまり、エージェントは目標地点に近づいても 19 // 速度をおとしません) 20 agent.autoBraking = false; 21 22 GotoNextPoint(); 23 } 24 25 26 void GotoNextPoint() 27 { 28 // 地点がなにも設定されていないときに返します 29 if (points.Length == 0) 30 return; 31 32 // エージェントが現在設定された目標地点に行くように設定します 33 agent.destination = points[destPoint].position; 34 35 // 配列内の次の位置を目標地点に設定し、 36 // 必要ならば出発地点にもどります 37 destPoint = (destPoint + 1) % points.Length; 38 } 39 40 41 void Update() 42 { 43 // エージェントが現目標地点に近づいてきたら、 44 // 次の目標地点を選択します 45 if (!agent.pathPending && agent.remainingDistance < 0.5f) 46 GotoNextPoint(); 47 } 48} 49
補足画像
「unity 衝突」「unity 巡回 発見」等で調べれば方法は出て来るかと思いますが、何が疑問なのでしょうか。こちらを参考に質問の編集をお願いします。→https://teratail.com/help/question-tips
回答1件
あなたの回答
tips
プレビュー