Esempio n. 1
0
    public override void OnInspectorGUI()
    {
        WaveVR_ControllerLoader myScript = target as WaveVR_ControllerLoader;

        myScript.WhichHand            = (WaveVR_ControllerLoader.ControllerHand)EditorGUILayout.EnumPopup("Type", myScript.WhichHand);
        myScript.ControllerComponents = (WaveVR_ControllerLoader.CComponent)EditorGUILayout.EnumPopup("Controller Components", myScript.ControllerComponents);

        myScript.TrackPosition = EditorGUILayout.Toggle("Track Position", myScript.TrackPosition);
        if (true == myScript.TrackPosition)
        {
            myScript.SimulationOption = (WVR_SimulationOption)EditorGUILayout.EnumPopup("    Simulate Position", myScript.SimulationOption);
            if (myScript.SimulationOption == WVR_SimulationOption.ForceSimulation || myScript.SimulationOption == WVR_SimulationOption.WhenNoPosition)
            {
                myScript.FollowHead = (bool)EditorGUILayout.Toggle("        Follow Head", myScript.FollowHead);
            }
        }

        myScript.TrackRotation = EditorGUILayout.Toggle("Track Rotation", myScript.TrackRotation);

        EditorGUILayout.LabelField("Indication feature");
        myScript.overwriteIndicatorSettings = EditorGUILayout.Toggle("Overwrite Indicator Settings", myScript.overwriteIndicatorSettings);
        if (true == myScript.overwriteIndicatorSettings)
        {
            myScript.showIndicator = EditorGUILayout.Toggle("Show Indicator", myScript.showIndicator);
            if (true == myScript.showIndicator)
            {
                myScript.hideIndicatorByRoll = EditorGUILayout.Toggle("Hide Indicator when roll angle > 90 ", myScript.hideIndicatorByRoll);
                myScript.showIndicatorAngle  = EditorGUILayout.FloatField("Show When Angle > ", myScript.showIndicatorAngle);
                EditorGUILayout.Space();

                EditorGUILayout.LabelField("Line customization");
                myScript.lineLength     = EditorGUILayout.FloatField("Line Length", myScript.lineLength);
                myScript.lineStartWidth = EditorGUILayout.FloatField("Line Start Width", myScript.lineStartWidth);
                myScript.lineEndWidth   = EditorGUILayout.FloatField("Line End Width", myScript.lineEndWidth);
                myScript.lineColor      = EditorGUILayout.ColorField("Line Color", myScript.lineColor);
                EditorGUILayout.Space();

                EditorGUILayout.LabelField("Text customization");
                myScript.textCharacterSize = EditorGUILayout.FloatField("Text Character Size", myScript.textCharacterSize);
                myScript.zhCharactarSize   = EditorGUILayout.FloatField("Chinese Character Size", myScript.zhCharactarSize);
                myScript.textFontSize      = EditorGUILayout.IntField("Text Font Size", myScript.textFontSize);
                myScript.textColor         = EditorGUILayout.ColorField("Text Color", myScript.textColor);
                EditorGUILayout.Space();

                EditorGUILayout.LabelField("Key indication");
                var list = myScript.buttonIndicationList;

                int newCount = Mathf.Max(0, EditorGUILayout.IntField("Button indicator size", list.Count));

                while (newCount < list.Count)
                {
                    list.RemoveAt(list.Count - 1);
                }
                while (newCount > list.Count)
                {
                    list.Add(new ButtonIndication());
                }

                for (int i = 0; i < list.Count; i++)
                {
                    EditorGUILayout.LabelField("Button indication " + i);
                    myScript.buttonIndicationList[i].keyType              = (ButtonIndication.KeyIndicator)EditorGUILayout.EnumPopup("Key Type", myScript.buttonIndicationList[i].keyType);
                    myScript.buttonIndicationList[i].alignment            = (ButtonIndication.Alignment)EditorGUILayout.EnumPopup("Alignment", myScript.buttonIndicationList[i].alignment);
                    myScript.buttonIndicationList[i].indicationOffset     = EditorGUILayout.Vector3Field("Indication offset", myScript.buttonIndicationList[i].indicationOffset);
                    myScript.buttonIndicationList[i].indicationText       = EditorGUILayout.TextField("Indication text", myScript.buttonIndicationList[i].indicationText);
                    myScript.buttonIndicationList[i].followButtonRotation = EditorGUILayout.Toggle("Follow button rotation", myScript.buttonIndicationList[i].followButtonRotation);
                    EditorGUILayout.Space();
                }
            }
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty((WaveVR_ControllerLoader)target);
        }
    }
    public override void OnInspectorGUI()
    {
        WaveVR_ControllerLoader myScript = target as WaveVR_ControllerLoader;

        myScript.WhichHand            = (WaveVR_ControllerLoader.ControllerHand)EditorGUILayout.EnumPopup("Type", myScript.WhichHand);
        myScript.ControllerComponents = (WaveVR_ControllerLoader.CComponent)EditorGUILayout.EnumPopup("Controller Components", myScript.ControllerComponents);

        myScript.TrackPosition = EditorGUILayout.Toggle("Track Position", myScript.TrackPosition);
        if (true == myScript.TrackPosition)
        {
            myScript.SimulationOption = (WVR_SimulationOption)EditorGUILayout.EnumPopup("    Simulate Position", myScript.SimulationOption);
            if (myScript.SimulationOption == WVR_SimulationOption.ForceSimulation || myScript.SimulationOption == WVR_SimulationOption.WhenNoPosition)
            {
                myScript.FollowHead = (bool)EditorGUILayout.Toggle("        Follow Head", myScript.FollowHead);
            }
        }

        myScript.TrackRotation = EditorGUILayout.Toggle("Track Rotation", myScript.TrackRotation);
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("Controller model");
        myScript.adaptiveLoading = EditorGUILayout.Toggle("  Adaptive loading", myScript.adaptiveLoading);
        if (true == myScript.adaptiveLoading)
        {
            EditorGUILayout.LabelField("  Button effect");
            myScript.enableButtonEffect = EditorGUILayout.Toggle("    Enable button effect", myScript.enableButtonEffect);
            if (true == myScript.enableButtonEffect)
            {
                myScript.useEffectSystemConfig = EditorGUILayout.Toggle("      Apply button effect system config", myScript.useEffectSystemConfig);
                if (true != myScript.useEffectSystemConfig)
                {
                    myScript.buttonEffectColor = EditorGUILayout.ColorField("          Button effect color", myScript.buttonEffectColor);
                }
            }

            EditorGUILayout.LabelField("  Beam");
            myScript.useBeamSystemConfig = EditorGUILayout.Toggle("    Apply beam system config", myScript.useBeamSystemConfig);
            if (true != myScript.useBeamSystemConfig)
            {
                myScript.updateEveryFrame = EditorGUILayout.Toggle("       Need to update every frame", myScript.updateEveryFrame);
                myScript.startWidth       = EditorGUILayout.FloatField("       Start width ", myScript.startWidth);
                myScript.endWidth         = EditorGUILayout.FloatField("       End width ", myScript.endWidth);
                myScript.startOffset      = EditorGUILayout.FloatField("       Start offset ", myScript.startOffset);
                myScript.endOffset        = EditorGUILayout.FloatField("       End offset ", myScript.endOffset);
                myScript.StartColor       = EditorGUILayout.ColorField("       Start color", myScript.StartColor);
                myScript.EndColor         = EditorGUILayout.ColorField("       End color", myScript.EndColor);
            }

            EditorGUILayout.LabelField("  Indication feature");
            myScript.overwriteIndicatorSettings = true;
            myScript.showIndicator = EditorGUILayout.Toggle("    Show Indicator", myScript.showIndicator);
            if (true == myScript.showIndicator)
            {
                myScript.hideIndicatorByRoll = EditorGUILayout.Toggle("      Hide Indicator when roll angle > 90 ", myScript.hideIndicatorByRoll);
                myScript.showIndicatorAngle  = EditorGUILayout.FloatField("      Show When Angle > ", myScript.showIndicatorAngle);
                EditorGUILayout.Space();

                EditorGUILayout.LabelField("      Line customization");
                myScript.lineLength     = EditorGUILayout.FloatField("        Line Length", myScript.lineLength);
                myScript.lineStartWidth = EditorGUILayout.FloatField("        Line Start Width", myScript.lineStartWidth);
                myScript.lineEndWidth   = EditorGUILayout.FloatField("        Line End Width", myScript.lineEndWidth);
                myScript.lineColor      = EditorGUILayout.ColorField("        Line Color", myScript.lineColor);
                EditorGUILayout.Space();

                EditorGUILayout.LabelField("      Text customization");
                myScript.textCharacterSize = EditorGUILayout.FloatField("        Text Character Size", myScript.textCharacterSize);
                myScript.zhCharactarSize   = EditorGUILayout.FloatField("        Chinese Character Size", myScript.zhCharactarSize);
                myScript.textFontSize      = EditorGUILayout.IntField("        Text Font Size", myScript.textFontSize);
                myScript.textColor         = EditorGUILayout.ColorField("        Text Color", myScript.textColor);
                EditorGUILayout.Space();

                EditorGUILayout.LabelField("      Key indication");
                var list = myScript.buttonIndicationList;

                int newCount = Mathf.Max(0, EditorGUILayout.IntField("        Button indicator size", list.Count));

                while (newCount < list.Count)
                {
                    list.RemoveAt(list.Count - 1);
                }
                while (newCount > list.Count)
                {
                    list.Add(new ButtonIndication());
                }

                for (int i = 0; i < list.Count; i++)
                {
                    EditorGUILayout.LabelField("        Button indication " + i);
                    myScript.buttonIndicationList[i].keyType          = (ButtonIndication.KeyIndicator)EditorGUILayout.EnumPopup("        Key Type", myScript.buttonIndicationList[i].keyType);
                    myScript.buttonIndicationList[i].alignment        = (ButtonIndication.Alignment)EditorGUILayout.EnumPopup("        Alignment", myScript.buttonIndicationList[i].alignment);
                    myScript.buttonIndicationList[i].indicationOffset = EditorGUILayout.Vector3Field("        Indication offset", myScript.buttonIndicationList[i].indicationOffset);
                    myScript.buttonIndicationList[i].useMultiLanguage = EditorGUILayout.Toggle("        Use multi-language", myScript.buttonIndicationList[i].useMultiLanguage);
                    if (myScript.buttonIndicationList[i].useMultiLanguage)
                    {
                        myScript.buttonIndicationList[i].indicationText = EditorGUILayout.TextField("        Indication key", myScript.buttonIndicationList[i].indicationText);
                    }
                    else
                    {
                        myScript.buttonIndicationList[i].indicationText = EditorGUILayout.TextField("        Indication text", myScript.buttonIndicationList[i].indicationText);
                    }
                    myScript.buttonIndicationList[i].followButtonRotation = EditorGUILayout.Toggle("        Follow button rotation", myScript.buttonIndicationList[i].followButtonRotation);
                    EditorGUILayout.Space();
                }
            }
        }
        else
        {
            EditorGUILayout.LabelField("Indication feature");

            myScript.overwriteIndicatorSettings = EditorGUILayout.Toggle("  Overwrite Indicator Settings", myScript.overwriteIndicatorSettings);
            if (true == myScript.overwriteIndicatorSettings)
            {
                myScript.showIndicator = EditorGUILayout.Toggle("    Show Indicator", myScript.showIndicator);
                if (true == myScript.showIndicator)
                {
                    myScript.hideIndicatorByRoll = EditorGUILayout.Toggle("    Hide Indicator when roll angle > 90 ", myScript.hideIndicatorByRoll);
                    myScript.showIndicatorAngle  = EditorGUILayout.FloatField("    Show When Angle > ", myScript.showIndicatorAngle);
                    EditorGUILayout.Space();

                    EditorGUILayout.LabelField("    Line customization");
                    myScript.lineLength     = EditorGUILayout.FloatField("      Line Length", myScript.lineLength);
                    myScript.lineStartWidth = EditorGUILayout.FloatField("      Line Start Width", myScript.lineStartWidth);
                    myScript.lineEndWidth   = EditorGUILayout.FloatField("      Line End Width", myScript.lineEndWidth);
                    myScript.lineColor      = EditorGUILayout.ColorField("      Line Color", myScript.lineColor);
                    EditorGUILayout.Space();

                    EditorGUILayout.LabelField("    Text customization");
                    myScript.textCharacterSize = EditorGUILayout.FloatField("      Text Character Size", myScript.textCharacterSize);
                    myScript.zhCharactarSize   = EditorGUILayout.FloatField("      Chinese Character Size", myScript.zhCharactarSize);
                    myScript.textFontSize      = EditorGUILayout.IntField("      Text Font Size", myScript.textFontSize);
                    myScript.textColor         = EditorGUILayout.ColorField("      Text Color", myScript.textColor);
                    EditorGUILayout.Space();

                    EditorGUILayout.LabelField("    Key indication");
                    var list = myScript.buttonIndicationList;

                    int newCount = Mathf.Max(0, EditorGUILayout.IntField("      Button indicator size", list.Count));

                    while (newCount < list.Count)
                    {
                        list.RemoveAt(list.Count - 1);
                    }
                    while (newCount > list.Count)
                    {
                        list.Add(new ButtonIndication());
                    }

                    for (int i = 0; i < list.Count; i++)
                    {
                        EditorGUILayout.LabelField("      Button indication " + i);
                        myScript.buttonIndicationList[i].keyType          = (ButtonIndication.KeyIndicator)EditorGUILayout.EnumPopup("        Key Type", myScript.buttonIndicationList[i].keyType);
                        myScript.buttonIndicationList[i].alignment        = (ButtonIndication.Alignment)EditorGUILayout.EnumPopup("        Alignment", myScript.buttonIndicationList[i].alignment);
                        myScript.buttonIndicationList[i].indicationOffset = EditorGUILayout.Vector3Field("        Indication offset", myScript.buttonIndicationList[i].indicationOffset);
                        myScript.buttonIndicationList[i].useMultiLanguage = EditorGUILayout.Toggle("        Use multi-language", myScript.buttonIndicationList[i].useMultiLanguage);
                        if (myScript.buttonIndicationList[i].useMultiLanguage)
                        {
                            myScript.buttonIndicationList[i].indicationText = EditorGUILayout.TextField("        Indication key", myScript.buttonIndicationList[i].indicationText);
                        }
                        else
                        {
                            myScript.buttonIndicationList[i].indicationText = EditorGUILayout.TextField("        Indication text", myScript.buttonIndicationList[i].indicationText);
                        }
                        myScript.buttonIndicationList[i].followButtonRotation = EditorGUILayout.Toggle("        Follow button rotation", myScript.buttonIndicationList[i].followButtonRotation);
                        EditorGUILayout.Space();
                    }
                }
            }
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty((WaveVR_ControllerLoader)target);
        }
    }