using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class NavigateToTarget : MonoBehaviour { public Transform flag; public NavMeshAgent agent; private Transform m_Target; private Vector3 m_TargetPosition; private void Awake() { agent = GetComponent(); agent.autoTraverseOffMeshLink = false; } private void Update() { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit info; if (Physics.Raycast(ray, out info, Mathf.Infinity, Physics.DefaultRaycastLayers)) { if (info.collider.gameObject.layer != LayerMask.NameToLayer("Prop")) { m_Target = info.collider.gameObject.transform; m_TargetPosition = m_Target.InverseTransformPoint(info.point); } } } if(m_Target != null) { Vector3 pos = m_Target.TransformPoint(m_TargetPosition); agent.destination = pos; flag.position = pos; } if(agent.isOnOffMeshLink) { } } }