summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Editor/TransformInspectorOverride.cs
blob: 76cb48cd1e68eb7db1ffce6c4bdb5470c1e99ec9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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();
	}

}