diff options
author | chai <215380520@qq.com> | 2024-05-23 10:10:23 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2024-05-23 10:10:23 +0800 |
commit | 81330a6b68d307937c262368a42a3fa4e9ad4207 (patch) | |
tree | 0616a08be385794e062fb616df4ffb503631ee08 /Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs | |
parent | 8722a9920c1f6119bf6e769cba270e63097f8e25 (diff) |
+ NavMeshTest
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) + { + + } + + } + +} |