summaryrefslogtreecommitdiff
path: root/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Editor/NavmeshAddEditor.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-23 10:08:29 +0800
committerchai <215380520@qq.com>2024-05-23 10:08:29 +0800
commit8722a9920c1f6119bf6e769cba270e63097f8e25 (patch)
tree2eaf9865de7fb1404546de4a4296553d8f68cc3b /Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Editor/NavmeshAddEditor.cs
parent3ba4020b69e5971bb0df7ee08b31d10ea4d01937 (diff)
+ astar project
Diffstat (limited to 'Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Editor/NavmeshAddEditor.cs')
-rw-r--r--Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Editor/NavmeshAddEditor.cs57
1 files changed, 57 insertions, 0 deletions
diff --git a/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Editor/NavmeshAddEditor.cs b/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Editor/NavmeshAddEditor.cs
new file mode 100644
index 0000000..ef2b625
--- /dev/null
+++ b/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Editor/NavmeshAddEditor.cs
@@ -0,0 +1,57 @@
+using UnityEngine;
+using UnityEditor;
+
+namespace Pathfinding {
+ [CustomEditor(typeof(NavmeshAdd))]
+ [CanEditMultipleObjects]
+ public class NavmeshAddEditor : EditorBase {
+ protected override void Inspector () {
+ EditorGUI.BeginChangeCheck();
+ var type = FindProperty("type");
+ PropertyField("type", "Shape");
+ EditorGUI.indentLevel++;
+
+ if (!type.hasMultipleDifferentValues) {
+ switch ((NavmeshAdd.MeshType)type.intValue) {
+ case NavmeshAdd.MeshType.Rectangle:
+ PropertyField("rectangleSize");
+ break;
+ case NavmeshAdd.MeshType.CustomMesh:
+ PropertyField("mesh");
+ PropertyField("meshScale");
+ break;
+ }
+ }
+
+ PropertyField("center");
+ EditorGUI.indentLevel--;
+
+ EditorGUILayout.Separator();
+ PropertyField("updateDistance");
+ if (PropertyField("useRotationAndScale")) {
+ EditorGUI.indentLevel++;
+ FloatField("updateRotationDistance", min: 0f, max: 180f);
+ EditorGUI.indentLevel--;
+ }
+
+ EditorGUI.BeginChangeCheck();
+ PropertyField("graphMask", "Traversable Graphs");
+ bool changedMask = EditorGUI.EndChangeCheck();
+
+ serializedObject.ApplyModifiedProperties();
+
+ if (EditorGUI.EndChangeCheck()) {
+ foreach (NavmeshAdd tg in targets) {
+ tg.RebuildMesh();
+ tg.ForceUpdate();
+ // If the mask is changed we disable and then enable the component
+ // to make sure it is removed from the right graphs and then added back
+ if (changedMask && tg.enabled) {
+ tg.enabled = false;
+ tg.enabled = true;
+ }
+ }
+ }
+ }
+ }
+}