From 81330a6b68d307937c262368a42a3fa4e9ad4207 Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Thu, 23 May 2024 10:10:23 +0800 Subject: + NavMeshTest --- .../Editor/NavMeshModifierEditor.cs | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Other/NavMeshTest/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs (limited to 'Other/NavMeshTest/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs') diff --git a/Other/NavMeshTest/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs b/Other/NavMeshTest/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs new file mode 100644 index 0000000..a2c636c --- /dev/null +++ b/Other/NavMeshTest/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs @@ -0,0 +1,49 @@ +using UnityEngine.AI; + +namespace UnityEditor.AI +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(NavMeshModifier))] + class NavMeshModifierEditor : Editor + { + SerializedProperty m_AffectedAgents; + SerializedProperty m_Area; + SerializedProperty m_IgnoreFromBuild; + SerializedProperty m_OverrideArea; + + void OnEnable() + { + m_AffectedAgents = serializedObject.FindProperty("m_AffectedAgents"); + m_Area = serializedObject.FindProperty("m_Area"); + m_IgnoreFromBuild = serializedObject.FindProperty("m_IgnoreFromBuild"); + m_OverrideArea = serializedObject.FindProperty("m_OverrideArea"); + + NavMeshVisualizationSettings.showNavigation++; + } + + void OnDisable() + { + NavMeshVisualizationSettings.showNavigation--; + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(m_IgnoreFromBuild); + + EditorGUILayout.PropertyField(m_OverrideArea); + if (m_OverrideArea.boolValue) + { + EditorGUI.indentLevel++; + NavMeshComponentsGUIUtility.AreaPopup("Area Type", m_Area); + EditorGUI.indentLevel--; + } + + NavMeshComponentsGUIUtility.AgentMaskPopup("Affected Agents", m_AffectedAgents); + EditorGUILayout.Space(); + + serializedObject.ApplyModifiedProperties(); + } + } +} -- cgit v1.1-26-g67d0