diff options
Diffstat (limited to 'Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs')
-rw-r--r-- | Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs b/Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs new file mode 100644 index 0000000..a7ed374 --- /dev/null +++ b/Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs @@ -0,0 +1,53 @@ +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<NavMeshAgent>(); + + 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) + { + + } + + } + +} |