summaryrefslogtreecommitdiff
path: root/Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-23 10:10:23 +0800
committerchai <215380520@qq.com>2024-05-23 10:10:23 +0800
commit81330a6b68d307937c262368a42a3fa4e9ad4207 (patch)
tree0616a08be385794e062fb616df4ffb503631ee08 /Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs
parent8722a9920c1f6119bf6e769cba270e63097f8e25 (diff)
+ NavMeshTest
Diffstat (limited to 'Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs')
-rw-r--r--Other/NavMeshTest/Assets/Scripts/NavigateToTarget.cs53
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)
+ {
+
+ }
+
+ }
+
+}