summaryrefslogtreecommitdiff
path: root/Valheim_v202102/Valheim/assembly_valheim/NavmeshTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Valheim_v202102/Valheim/assembly_valheim/NavmeshTest.cs')
-rw-r--r--Valheim_v202102/Valheim/assembly_valheim/NavmeshTest.cs62
1 files changed, 62 insertions, 0 deletions
diff --git a/Valheim_v202102/Valheim/assembly_valheim/NavmeshTest.cs b/Valheim_v202102/Valheim/assembly_valheim/NavmeshTest.cs
new file mode 100644
index 0000000..c0b4a0c
--- /dev/null
+++ b/Valheim_v202102/Valheim/assembly_valheim/NavmeshTest.cs
@@ -0,0 +1,62 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public class NavmeshTest : MonoBehaviour
+{
+ public Transform m_target;
+
+ public Pathfinding.AgentType m_agentType = Pathfinding.AgentType.Humanoid;
+
+ public bool m_cleanPath = true;
+
+ private List<Vector3> m_path = new List<Vector3>();
+
+ private bool m_havePath;
+
+ private void Awake()
+ {
+ }
+
+ private void Update()
+ {
+ if (Pathfinding.instance.GetPath(base.transform.position, m_target.position, m_path, m_agentType, requireFullPath: false, m_cleanPath))
+ {
+ m_havePath = true;
+ }
+ else
+ {
+ m_havePath = false;
+ }
+ }
+
+ private void OnDrawGizmos()
+ {
+ if (m_target == null)
+ {
+ return;
+ }
+ if (m_havePath)
+ {
+ Gizmos.color = Color.yellow;
+ for (int i = 0; i < m_path.Count - 1; i++)
+ {
+ Vector3 vector = m_path[i];
+ Gizmos.DrawLine(to: m_path[i + 1] + Vector3.up * 0.2f, from: vector + Vector3.up * 0.2f);
+ }
+ foreach (Vector3 item in m_path)
+ {
+ Gizmos.DrawSphere(item + Vector3.up * 0.2f, 0.1f);
+ }
+ Gizmos.color = Color.green;
+ Gizmos.DrawSphere(base.transform.position, 0.3f);
+ Gizmos.DrawSphere(m_target.position, 0.3f);
+ }
+ else
+ {
+ Gizmos.color = Color.red;
+ Gizmos.DrawLine(base.transform.position + Vector3.up * 0.2f, m_target.position + Vector3.up * 0.2f);
+ Gizmos.DrawSphere(base.transform.position, 0.3f);
+ Gizmos.DrawSphere(m_target.position, 0.3f);
+ }
+ }
+}