63 lines
1.7 KiB
C#
63 lines
1.7 KiB
C#
#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<MonoBehaviour>()[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<Transform>();
|
|
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
|