Exemplo n.º 1
0
 private void onSetupClick(object sender, EventArgs e)
 {
     using (var dialog = new AxisSetupForm(this)) {
         if (dialog.ShowDialog() == DialogResult.OK)
         {
             Parameters = dialog.Parameters;
         }
     }
 }
    AxisParameters DrawAxisInfo(string title, int axisNum, bool inverted, bool status)
    {
        AxisParameters output = new AxisParameters(axisNum, inverted);


        EditorGUILayout.LabelField(title, EditorStyles.largeLabel);
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Set"))
        {
            if (LastAxisIsUnused(axisNum, inverted))
            {
                RemoveAxis(axisNum, inverted);
                output.num      = script.AxisToInt(script.lastAxisUsed);
                output.inverted = script.lastAxisNegative;
                script.AddAxis(output.num, output.inverted, script.AxesUsedCurrent);
            }
        }
        if (GUILayout.Button("Reset"))
        {
            RemoveAxis(axisNum, inverted);
            output.num = -1;
        }
        GUILayout.EndHorizontal();
        if (status)
        {
            AxisStatus(axisNum, inverted, true);
        }
        else
        {
            AxisStatus(axisNum, inverted, false);
        }

        EditorGUILayout.Space();

        return(output);
    }
    public override void OnInspectorGUI()
    {
        errorStyle.fontSize = 12;
        float lightness = 0.35f;

        setStyle.normal.textColor = new Color(lightness, lightness, lightness);

        errorStyle.fontSize         = 12;
        errorStyle.normal.textColor = Color.red;
        errorStyle.fontStyle        = FontStyle.Bold;

        unassignedStyle.fontSize         = 10;
        unassignedStyle.normal.textColor = Color.yellow;
        unassignedStyle.normal.textColor = new Color(lightness, lightness, lightness);
        unassignedStyle.fontStyle        = FontStyle.Italic;

        header.fontSize  = 16;
        header.fontStyle = FontStyle.Bold;

        controllerStyle.fontSize         = 12;
        controllerStyle.normal.textColor = new Color(lightness, lightness, lightness);
        controllerStyle.fontStyle        = FontStyle.Bold;

        GUI.enabled = false;
        EditorGUILayout.ObjectField("Script:", MonoScript.FromMonoBehaviour((VRInputSetup)target), typeof(VRInputSetup), false);
        GUI.enabled = true;

        GUILayout.BeginHorizontal();
        if (GUILayout.Button("About this script", GUILayout.Height(25)))
        {
            script.DisplayAbout();
        }

        Color bColor = GUI.backgroundColor;

        GUI.backgroundColor = new Color(0.5f, 1, 0.5f, 1);
        if (GUILayout.Button("Display Manual", GUILayout.Height(25)))
        {
            script.DisplayManual();
        }
        GUI.backgroundColor = bColor;
        GUILayout.EndHorizontal();

        AddSpace(3);


        SerializedObject so = base.serializedObject;

        EditorGUILayout.PropertyField(so.FindProperty("vrInputLookup"), true);
        so.ApplyModifiedProperties();

        AddSpace(3);


        // Choose controller for setup
        if (GUILayout.Button("Switch Controller to Set Up", GUILayout.Height(25)))
        {
            script.AskForSwitch();
        }

        EditorGUILayout.LabelField("Current Controller: " + HandStatus(), controllerStyle);



        AddSpace(3);

        script = (VRInputSetup)base.target;

        // ------------------------ Buttons
        EditorGUILayout.LabelField("Buttons", header);

        AddSpace(2);

        script.button1_Touch = DrawButtonInfo("Button1_Touch", script.button1_Touch, script.Button1_TouchStatus);
        script.button2_Touch = DrawButtonInfo("Button2_Touch", script.button2_Touch, script.Button2_TouchStatus);

        script.index_Touch = DrawButtonInfo("Index_Touch", script.index_Touch, script.Index_TouchStatus);
        script.thumb_Touch = DrawButtonInfo("Thumb_Touch", script.thumb_Touch, script.Thumb_TouchStatus);

        script.button1 = DrawButtonInfo("Button1", script.button1, script.Button1Status);
        script.button2 = DrawButtonInfo("Button2", script.button2, script.Button2Status);

        script.thumb_Press = DrawButtonInfo("Thumb_Press", script.thumb_Press, script.Thumb_PressStatus);

        EditorGUILayout.LabelField("Last Button Pressed: " + script.lastButtonPressed.ToString(), EditorStyles.boldLabel);

        AddSpace(6);


        //  ------------------------------- Axes

        EditorGUILayout.LabelField("Axes", header);

        AddSpace(2);

        AxisParameters info = DrawAxisInfo("ThumbX", script.thumbX, script.thumbXInverted, script.ThumbXStatus);

        script.thumbX         = info.num;
        script.thumbXInverted = info.inverted;

        info                  = DrawAxisInfo("ThumbY", script.thumbY, script.thumbYInverted, script.ThumbYStatus);
        script.thumbY         = info.num;
        script.thumbYInverted = info.inverted;

        info                 = DrawAxisInfo("Index", script.index, script.indexInverted, script.IndexStatus);
        script.index         = info.num;
        script.indexInverted = info.inverted;

        info                = DrawAxisInfo("Grab", script.grab, script.grabInverted, script.GrabStatus);
        script.grab         = info.num;
        script.grabInverted = info.inverted;

        EditorGUILayout.LabelField("Last Axis used: " + script.lastAxisUsed, EditorStyles.boldLabel);

        AddSpace(3);


        GUI.backgroundColor = Color.yellow;
        if (GUILayout.Button("Apply Settings", GUILayout.Height(50)))
        {
            EditorUtility.SetDirty(target);
            script.ApplySettings(true);
        }
        GUI.backgroundColor = bColor;

        AddSpace(3);
    }