summaryrefslogtreecommitdiff
path: root/VRCSDK3AvatarsQuestLegacy/Assets/VRCSDK/SDK3A/Editor/Components3/VRCAnimatorLocomotionControlEditor.cs
blob: fbe1e6d3348f589d895724f1114f0c6f8e65ef0a (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
#if VRC_SDK_VRCSDK3
using UnityEngine;
using UnityEditor;
using VRC.SDK3.Avatars.Components;

[CustomEditor(typeof(VRCAnimatorLocomotionControl))]
public class VRCAnimatorLocomotionControlEditor : Editor
{
    VRCAnimatorLocomotionControl control;
    GUIStyle styleButtonActive;
    GUIStyle styleButtonInactive;

    public void OnEnable()
    {
        if (target == null)
            return;

        if (control == null)
            control = (VRCAnimatorLocomotionControl)target;

        styleButtonActive = new GUIStyle(EditorStyles.miniButton);
        styleButtonInactive = new GUIStyle(EditorStyles.miniButton);
        styleButtonActive.fixedWidth = 80;
        styleButtonInactive.fixedWidth = 80;
        styleButtonActive.normal.textColor = Color.green;
        styleButtonInactive.normal.textColor = Color.gray;

        serializedObject.ApplyModifiedProperties();
    }

    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        EditorGUILayout.Space();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Locomotion Control", GUILayout.MaxWidth(150));
        if (control.disableLocomotion)
        {
            GUILayout.Button("Disable", styleButtonActive);
            if (GUILayout.Button("Enable", styleButtonInactive))
                control.disableLocomotion = false;
        }
        else
        {
            if (GUILayout.Button("Disable", styleButtonInactive))
                control.disableLocomotion = true;
            GUILayout.Button("Enable", styleButtonActive);
        }
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.Space();
        control.debugString = EditorGUILayout.TextField("Debug String", control.debugString);

        serializedObject.ApplyModifiedProperties();

        //if (_repaint)
        //    EditorUtility.SetDirty(target);
    }
}
#endif