#if UNITY_EDITOR using UnityEditor; using UnityEditorInternal; using UnityEngine; namespace DC.Tools { [CustomEditor(typeof(BlankParentObject))] [CanEditMultipleObjects] public class BlankParentObjectEditor : Editor { private BlankParentObject _blankParentObject; private Tool _lastTool = Tool.None; private void OnEnable() { CheckAndSetObject(); if (_blankParentObject == null) { Debug.LogError("Cannot find BlankParentObject"); return; } _blankParentObject.ZeroTransform(); if (_blankParentObject.GetComponents()[0] != _blankParentObject) ComponentUtility.MoveComponentUp(_blankParentObject); _lastTool = UnityEditor.Tools.current; } private void OnDisable() { UnityEditor.Tools.current = _lastTool; } public override void OnInspectorGUI() { CheckAndSetObject(); var objectTransform = _blankParentObject.gameObject.GetComponent(); if (objectTransform.hideFlags != HideFlags.HideInInspector) objectTransform.hideFlags = HideFlags.HideInInspector; if (UnityEditor.Tools.current != Tool.None) { UnityEditor.Tools.current = Tool.None; } EditorGUILayout.HelpBox("Remove this script to re-enable Transform component", MessageType.Info); InternalEditorUtility.SetIsInspectorExpanded(target, true); } private void CheckAndSetObject() { if (_blankParentObject == null) _blankParentObject = target as BlankParentObject; } } } #endif