From 7e5a86276b2bd5b7166bc49bc645cf2911ac7481 Mon Sep 17 00:00:00 2001 From: "Arthur Z. Baney" Date: Fri, 1 May 2020 10:52:36 -0700 Subject: [PATCH] Made NavMeshSourceTag support having different area types --- Assets/Examples/Scripts/NavMeshSourceTag.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Assets/Examples/Scripts/NavMeshSourceTag.cs b/Assets/Examples/Scripts/NavMeshSourceTag.cs index 375ff635..7c5bdcab 100644 --- a/Assets/Examples/Scripts/NavMeshSourceTag.cs +++ b/Assets/Examples/Scripts/NavMeshSourceTag.cs @@ -10,6 +10,9 @@ public class NavMeshSourceTag : MonoBehaviour // Global containers for all active mesh/terrain tags public static List m_Meshes = new List(); public static List m_Terrains = new List(); + public static List m_Areas = new List(); + + [SerializeField] private string areaName = "Walkable"; void OnEnable() { @@ -17,12 +20,14 @@ void OnEnable() if (m != null) { m_Meshes.Add(m); + m_Areas.Add(NavMesh.GetAreaFromName(areaName)); } var t = GetComponent(); if (t != null) { m_Terrains.Add(t); + m_Areas.Add(NavMesh.GetAreaFromName(areaName)); } } @@ -58,7 +63,7 @@ public static void Collect(ref List sources) s.shape = NavMeshBuildSourceShape.Mesh; s.sourceObject = m; s.transform = mf.transform.localToWorldMatrix; - s.area = 0; + s.area = m_Areas[i]; sources.Add(s); } @@ -72,7 +77,7 @@ public static void Collect(ref List sources) s.sourceObject = t.terrainData; // Terrain system only supports translation - so we pass translation only to back-end s.transform = Matrix4x4.TRS(t.transform.position, Quaternion.identity, Vector3.one); - s.area = 0; + s.area = m_Areas[i]; sources.Add(s); } }