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(); return topdown != null; } public override void OnSceneGUI() { base.OnSceneGUI(); } }