Editor/SnapRotateEditor.cs
unknown
csharp
2 years ago
2.4 kB
15
Indexable
using UnityEditor; using UnityEngine; [CustomEditor(typeof(SnapRotate))] public class SnapRotateEditor : Editor { public override void OnInspectorGUI() { SnapRotate snapRotate = (SnapRotate)target; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Pitch", GUILayout.MaxWidth(50)); if (GUILayout.Button("<", GUILayout.MaxWidth(25))) { snapRotate.Pitch.CurrentDirection--; if ((int)snapRotate.Pitch.CurrentDirection < 0) { snapRotate.Pitch.CurrentDirection = (Discrete2DRotation.RotationDirection)7; } } EditorGUILayout.EnumPopup(snapRotate.Pitch.CurrentDirection, GUILayout.MaxWidth(100)); if (GUILayout.Button(">", GUILayout.MaxWidth(25))) { snapRotate.Pitch.CurrentDirection++; if ((int)snapRotate.Pitch.CurrentDirection > 7) { snapRotate.Pitch.CurrentDirection = 0; } } EditorGUILayout.EndHorizontal(); // Repeat the same process for Yaw and Roll EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Yaw", GUILayout.MaxWidth(50)); if (GUILayout.Button("<", GUILayout.MaxWidth(25))) { snapRotate.Yaw.CurrentDirection--; if ((int)snapRotate.Yaw.CurrentDirection < 0) { snapRotate.Yaw.CurrentDirection = (Discrete2DRotation.RotationDirection)7; } } EditorGUILayout.EnumPopup(snapRotate.Yaw.CurrentDirection, GUILayout.MaxWidth(100)); if (GUILayout.Button(">", GUILayout.MaxWidth(25))) { snapRotate.Yaw.CurrentDirection++; if ((int)snapRotate.Yaw.CurrentDirection > 7) { snapRotate.Yaw.CurrentDirection = 0; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Roll", GUILayout.MaxWidth(50)); if (GUILayout.Button("<", GUILayout.MaxWidth(25))) { snapRotate.Roll.CurrentDirection--; if ((int)snapRotate.Roll.CurrentDirection < 0) { snapRotate.Roll.CurrentDirection = (Discrete2DRotation.RotationDirection)7; } } EditorGUILayout.EnumPopup(snapRotate.Roll.CurrentDirection, GUILayout.MaxWidth(100)); if (GUILayout.Button(">", GUILayout.MaxWidth(25))) { snapRotate.Roll.CurrentDirection++; if ((int)snapRotate.Roll.CurrentDirection > 7) { snapRotate.Roll.CurrentDirection = 0; } } EditorGUILayout.EndHorizontal(); // Apply changes to the target object if (GUI.changed) { EditorUtility.SetDirty(snapRotate); serializedObject.ApplyModifiedProperties(); } } }
Editor is loading...