diff options
author | chai <chaifix@163.com> | 2022-04-22 19:24:15 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-04-22 19:24:15 +0800 |
commit | ded822e98e8eda49618d17e53407b0df1896e539 (patch) | |
tree | d7f09eafe52f7adb948889e459e900c360dbbdec /SurvivalTest/Assets/Scripts/Editor/TransformInspectorOverride.cs | |
parent | c7de0419a8924ae7333bcaed39e797d7c9fc1e69 (diff) |
* rename AlienSurvival project to SurvivalTest
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Editor/TransformInspectorOverride.cs')
-rw-r--r-- | SurvivalTest/Assets/Scripts/Editor/TransformInspectorOverride.cs | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/SurvivalTest/Assets/Scripts/Editor/TransformInspectorOverride.cs b/SurvivalTest/Assets/Scripts/Editor/TransformInspectorOverride.cs new file mode 100644 index 0000000..76cb48c --- /dev/null +++ b/SurvivalTest/Assets/Scripts/Editor/TransformInspectorOverride.cs @@ -0,0 +1,68 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +[CanEditMultipleObjects, CustomEditor(typeof(Transform), true)] +public class TransformInspectorOverride : InspectorExt +{ + protected override string defaultEditorName => "UnityEditor.TransformInspector, UnityEditor"; + + Tool LastTool = Tool.None; + + public override void OnEnable() + { + base.OnEnable(); + + if(HasTopDownTransform()) + HideDefaultTools(); + } + + public override void OnDisable() + { + base.OnDisable(); + + if(LastTool != Tool.None) + RestoreTools(); + } + + void HideDefaultTools() + { + if(Tools.current != Tool.None) + LastTool = Tools.current; + Tools.current = Tool.None; + } + + void RestoreTools() + { + Tools.current = LastTool; + } + + public override void OnInspectorGUI() + { + if (HasTopDownTransform()) + { + EditorGUILayout.HelpBox("Override by TopDownTransform", MessageType.Warning); + GUI.enabled = false; + HideDefaultTools(); + } + + base.OnInspectorGUI(); + + if (HasTopDownTransform()) + GUI.enabled = true; + } + + bool HasTopDownTransform() + { + Transform transform = target as Transform; + TopDownTransform topdown = transform.GetComponent<TopDownTransform>(); + return topdown != null; + } + + public override void OnSceneGUI() + { + base.OnSceneGUI(); + } + +} |