using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; [CustomEditor(typeof(TopDownTransform))] public class TopDownTransformInspector : Editor { TopDownTransform m_TopDownTransform; private void OnEnable() { m_TopDownTransform = target as TopDownTransform; } private void OnDisable() { } public override void OnInspectorGUI() { base.OnInspectorGUI(); } protected override void OnHeaderGUI() { base.OnHeaderGUI(); } //https://answers.unity.com/questions/463207/how-do-you-make-a-custom-handle-respond-to-the-mou.html private void OnSceneGUI() { Vector3 pos3d = m_TopDownTransform.GetProjectedPosition(); float arrowSize = 2f; Handles.color = Handles.xAxisColor; m_TopDownTransform.x += EditorHandlesHelper.PositionArrow(pos3d + new Vector3(0, -m_TopDownTransform.z, 0), Vector3.right, 1f, arrowSize).x; Handles.color = Handles.yAxisColor; m_TopDownTransform.y -= EditorHandlesHelper.PositionArrow(pos3d + new Vector3(0, -m_TopDownTransform.z, 0), Vector3.up, 1f, arrowSize).y; Handles.color = Handles.zAxisColor; m_TopDownTransform.z -= EditorHandlesHelper.PositionArrow(pos3d /*+ new Vector3(-0.3f, 0, 0)*/, Vector3.up, 1.4f, arrowSize).y; } }