NavMeshComponentsに2D対応ブランチが追加されていたので試してみた
こちらを参考にすすめているのですが以下のエラーが出て動作しません、原因がわからず困っています。
Failed to create agent because it is not close enough to the NavMesh
"SetDestination" can only be called on an active agent that has been placed on a NavMesh.
UnityEngine.AI.NavMeshAgent:SetDestination(Vector3)
BirdController:Update() (at Assets/Scripts/BirdController.cs:36)
C#
1using System.Collections; 2using UnityEngine; 3using UnityEngine.AI; 4 5[RequireComponent(typeof(NavMeshAgent))] 6public class NavController : MonoBehaviour { 7 [SerializeField] private Transform egg; 8 private NavMeshAgent agent; 9 10 private void Awake() 11 { 12 this.agent = this.GetComponent<NavMeshAgent>(); 13 } 14 15 private IEnumerator Start() 16 { 17 yield return new WaitForEndOfFrame(); 18 19 this.agent.enabled = true; 20 if (NavMesh.SamplePosition(this.transform.position, out var hit, float.MaxValue, NavMesh.AllAreas)) 21 { 22 this.agent.Warp(hit.position); 23 } 24 } 25 26 private void Update() 27 { 28 if (this.agent.isActiveAndEnabled && (this.egg != null)) 29 { 30 this.agent.SetDestination(this.egg.position); 31 } 32 } 33 private void LateUpdate() 34 { 35 var forward = this.transform.forward; 36 if (forward.z < 0.5f) 37 { 38 this.transform.rotation = Quaternion.LookRotation(Vector3.forward, forward); 39 } 40 } 41}
こちらのサイトを参考にしています。
Unity2D環境でNPCキャラにNavを実装【NavMeshAgent2D版使用】
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。