123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 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 (changedMask && tg.enabled) {
- tg.enabled = false;
- tg.enabled = true;
- }
- }
- }
- }
- }
- }
|