DCBlankParentObject/Editor/BlankParentObjectEditor.cs

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