Exemplo n.º 1
0
        private void ShowVarGUI(List<GVar> vars, List<ActionParameter> parameters, ParameterType parameterType)
        {
            // Create a string List of the field's names (for the PopUp box)
            List<string> labelList = new List<string>();

            int i = 0;
            if (parameterID == -1)
            {
                variableNumber = -1;
            }

            if (vars.Count > 0)
            {
                foreach (GVar _var in vars)
                {
                    labelList.Add (_var.label);

                    // If a GlobalVar variable has been removed, make sure selected variable is still valid
                    if (_var.id == variableID)
                    {
                        variableNumber = i;
                    }

                    i ++;
                }

                if (variableNumber == -1 && (parameters == null || parameters.Count == 0 || parameterID == -1))
                {
                    // Wasn't found (variable was deleted?), so revert to zero
                    Debug.LogWarning ("Previously chosen variable no longer exists!");
                    variableNumber = 0;
                    variableID = 0;
                }

                parameterID = Action.ChooseParameterGUI ("Variable:", parameters, parameterID, parameterType);
                if (parameterID >= 0)
                {
                    //variableNumber = 0;
                    variableNumber = Mathf.Min (variableNumber, vars.Count-1);
                    variableID = -1;
                }
                else
                {
                    variableNumber = EditorGUILayout.Popup ("Variable:", variableNumber, labelList.ToArray());
                    variableID = vars [variableNumber].id;
                }

                string label = "Statement: ";

                if (vars [variableNumber].type == VariableType.Boolean)
                {
                    setVarMethodIntBool = (SetVarMethodIntBool) EditorGUILayout.EnumPopup ("New value is:", setVarMethodIntBool);

                    label += "=";
                    if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                    {
                        setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.Boolean);
                        if (setParameterID < 0)
                        {
                            boolValue = (BoolValue) EditorGUILayout.EnumPopup (label, boolValue);
                        }
                    }
                    else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                    {
                        ShowMecanimGUI ();
                    }
                }
                if (vars [variableNumber].type == VariableType.PopUp)
                {
                    label += "=";
                    intValue = EditorGUILayout.Popup (label, intValue, vars[variableNumber].popUps);
                }
                else if (vars [variableNumber].type == VariableType.Integer)
                {
                    setVarMethodIntBool = (SetVarMethodIntBool) EditorGUILayout.EnumPopup ("New value is:", setVarMethodIntBool);

                    if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                    {
                        setVarMethod = (SetVarMethod) EditorGUILayout.EnumPopup ("Method:", setVarMethod);

                        if (setVarMethod == SetVarMethod.Formula)
                        {
                            label += "=";

                            setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.String);
                            if (setParameterID < 0)
                            {
                                formula = EditorGUILayout.TextField (label, formula);
                            }

                            #if UNITY_WP8
                            EditorGUILayout.HelpBox ("This feature is not available for Windows Phone 8.", MessageType.Warning);
                            #endif
                        }
                        else
                        {
                            if (setVarMethod == SetVarMethod.IncreaseByValue)
                            {
                                label += "+=";
                            }
                            else if (setVarMethod == SetVarMethod.SetValue)
                            {
                                label += "=";
                            }
                            else if (setVarMethod == SetVarMethod.SetAsRandom)
                            {
                                label += ("= 0 to");
                            }

                            setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.Integer);
                            if (setParameterID < 0)
                            {
                                intValue = EditorGUILayout.IntField (label, intValue);

                                if (setVarMethod == SetVarMethod.SetAsRandom && intValue < 0)
                                {
                                    intValue = 0;
                                }
                            }
                        }

                    }
                    else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                    {
                        ShowMecanimGUI ();
                    }
                }
                else if (vars [variableNumber].type == VariableType.Float)
                {
                    setVarMethodIntBool = (SetVarMethodIntBool) EditorGUILayout.EnumPopup ("New value is:", setVarMethodIntBool);

                    if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                    {
                        setVarMethod = (SetVarMethod) EditorGUILayout.EnumPopup ("Method:", setVarMethod);

                        if (setVarMethod == SetVarMethod.Formula)
                        {
                            label += "=";

                            setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.String);
                            if (setParameterID < 0)
                            {
                                formula = EditorGUILayout.TextField (label, formula);
                            }

                            #if UNITY_WP8
                            EditorGUILayout.HelpBox ("This feature is not available for Windows Phone 8.", MessageType.Warning);
                            #endif
                        }
                        else
                        {
                            if (setVarMethod == SetVarMethod.IncreaseByValue)
                            {
                                label += "+=";
                            }
                            else if (setVarMethod == SetVarMethod.SetValue)
                            {
                                label += "=";
                            }
                            else if (setVarMethod == SetVarMethod.SetAsRandom)
                            {
                                label += "= 0 to";
                            }

                            setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.Float);
                            if (setParameterID < 0)
                            {
                                floatValue = EditorGUILayout.FloatField (label, floatValue);

                                if (setVarMethod == SetVarMethod.SetAsRandom && floatValue < 0f)
                                {
                                    floatValue = 0f;
                                }
                            }
                        }
                    }
                    else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                    {
                        ShowMecanimGUI ();
                    }
                }
                else if (vars [variableNumber].type == VariableType.String)
                {
                    setVarMethodString = (SetVarMethodString) EditorGUILayout.EnumPopup ("New value is:", setVarMethodString);

                    label += "=";
                    if (setVarMethodString == SetVarMethodString.EnteredHere)
                    {
                        setParameterID = Action.ChooseParameterGUI (label, parameters, setParameterID, ParameterType.String);
                        if (setParameterID < 0)
                        {
                            stringValue = EditorGUILayout.TextField (label, stringValue);
                        }
                    }
                    else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText)
                    {
                        menuName = EditorGUILayout.TextField ("Menu name:", menuName);
                        elementName = EditorGUILayout.TextField ("Element name:", elementName);

                        slotNumberParameterID = Action.ChooseParameterGUI ("Slot # (optional):", parameters, slotNumberParameterID, ParameterType.Integer);
                        if (slotNumberParameterID < 0)
                        {
                            slotNumber = EditorGUILayout.IntField ("Slot # (optional):", slotNumber);
                        }
                    }
                }

                AfterRunningOption ();
            }
            else
            {
                EditorGUILayout.HelpBox ("No variables exist!", MessageType.Info);
                variableID = -1;
                variableNumber = -1;
            }
        }
Exemplo n.º 2
0
        private void ShowVarGUI(List <GVar> vars, List <ActionParameter> parameters, ParameterType parameterType)
        {
            // Create a string List of the field's names (for the PopUp box)
            List <string> labelList = new List <string>();

            int i = 0;

            if (parameterID == -1)
            {
                variableNumber = -1;
            }

            if (vars.Count > 0)
            {
                foreach (GVar _var in vars)
                {
                    labelList.Add(_var.label);

                    // If a GlobalVar variable has been removed, make sure selected variable is still valid
                    if (_var.id == variableID)
                    {
                        variableNumber = i;
                    }

                    i++;
                }

                if (variableNumber == -1 && (parameters == null || parameters.Count == 0 || parameterID == -1))
                {
                    // Wasn't found (variable was deleted?), so revert to zero
                    Debug.LogWarning("Previously chosen variable no longer exists!");
                    variableNumber = 0;
                    variableID     = 0;
                }


                parameterID = Action.ChooseParameterGUI("Variable:", parameters, parameterID, parameterType);
                if (parameterID >= 0)
                {
                    //variableNumber = 0;
                    variableNumber = Mathf.Min(variableNumber, vars.Count - 1);
                    variableID     = -1;
                }
                else
                {
                    variableNumber = EditorGUILayout.Popup("Variable:", variableNumber, labelList.ToArray());
                    variableID     = vars [variableNumber].id;
                }

                string label = "Statement: ";

                if (vars [variableNumber].type == VariableType.Boolean)
                {
                    setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool);

                    label += "=";
                    if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                    {
                        setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Boolean);
                        if (setParameterID < 0)
                        {
                            boolValue = (BoolValue)EditorGUILayout.EnumPopup(label, boolValue);
                        }
                    }
                    else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                    {
                        ShowMecanimGUI();
                    }
                }
                if (vars [variableNumber].type == VariableType.PopUp)
                {
                    label   += "=";
                    intValue = EditorGUILayout.Popup(label, intValue, vars[variableNumber].popUps);
                }
                else if (vars [variableNumber].type == VariableType.Integer)
                {
                    setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool);

                    if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                    {
                        setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod);

                        if (setVarMethod == SetVarMethod.Formula)
                        {
                            label += "=";

                            setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String);
                            if (setParameterID < 0)
                            {
                                formula = EditorGUILayout.TextField(label, formula);
                            }

                                                        #if UNITY_WP8
                            EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning);
                                                        #endif
                        }
                        else
                        {
                            if (setVarMethod == SetVarMethod.IncreaseByValue)
                            {
                                label += "+=";
                            }
                            else if (setVarMethod == SetVarMethod.SetValue)
                            {
                                label += "=";
                            }
                            else if (setVarMethod == SetVarMethod.SetAsRandom)
                            {
                                label += ("= 0 to");
                            }

                            setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Integer);
                            if (setParameterID < 0)
                            {
                                intValue = EditorGUILayout.IntField(label, intValue);

                                if (setVarMethod == SetVarMethod.SetAsRandom && intValue < 0)
                                {
                                    intValue = 0;
                                }
                            }
                        }
                    }
                    else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                    {
                        ShowMecanimGUI();
                    }
                }
                else if (vars [variableNumber].type == VariableType.Float)
                {
                    setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool);

                    if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                    {
                        setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod);

                        if (setVarMethod == SetVarMethod.Formula)
                        {
                            label += "=";

                            setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String);
                            if (setParameterID < 0)
                            {
                                formula = EditorGUILayout.TextField(label, formula);
                            }

                                                        #if UNITY_WP8
                            EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning);
                                                        #endif
                        }
                        else
                        {
                            if (setVarMethod == SetVarMethod.IncreaseByValue)
                            {
                                label += "+=";
                            }
                            else if (setVarMethod == SetVarMethod.SetValue)
                            {
                                label += "=";
                            }
                            else if (setVarMethod == SetVarMethod.SetAsRandom)
                            {
                                label += "= 0 to";
                            }

                            setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Float);
                            if (setParameterID < 0)
                            {
                                floatValue = EditorGUILayout.FloatField(label, floatValue);

                                if (setVarMethod == SetVarMethod.SetAsRandom && floatValue < 0f)
                                {
                                    floatValue = 0f;
                                }
                            }
                        }
                    }
                    else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                    {
                        ShowMecanimGUI();
                    }
                }
                else if (vars [variableNumber].type == VariableType.String)
                {
                    setVarMethodString = (SetVarMethodString)EditorGUILayout.EnumPopup("New value is:", setVarMethodString);

                    label += "=";
                    if (setVarMethodString == SetVarMethodString.EnteredHere)
                    {
                        setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String);
                        if (setParameterID < 0)
                        {
                            stringValue = EditorGUILayout.TextField(label, stringValue);
                        }
                    }
                    else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText)
                    {
                        menuName    = EditorGUILayout.TextField("Menu name:", menuName);
                        elementName = EditorGUILayout.TextField("Element name:", elementName);

                        slotNumberParameterID = Action.ChooseParameterGUI("Slot # (optional):", parameters, slotNumberParameterID, ParameterType.Integer);
                        if (slotNumberParameterID < 0)
                        {
                            slotNumber = EditorGUILayout.IntField("Slot # (optional):", slotNumber);
                        }
                    }
                }

                AfterRunningOption();
            }
            else
            {
                EditorGUILayout.HelpBox("No variables exist!", MessageType.Info);
                variableID     = -1;
                variableNumber = -1;
            }
        }
Exemplo n.º 3
0
        private void ShowVarGUI(List <GVar> _vars, List <ActionParameter> parameters, ParameterType parameterType, bool changeID)
        {
            // Create a string List of the field's names (for the PopUp box)
            List <string> labelList = new List <string>();

            int i = 0;

            if (parameterID == -1)
            {
                variableNumber = -1;
            }

            VariableType showType = VariableType.Boolean;

            if (changeID)
            {
                if (_vars != null && _vars.Count > 0)
                {
                    foreach (GVar _var in _vars)
                    {
                        labelList.Add(_var.label);

                        // If a GlobalVar variable has been removed, make sure selected variable is still valid
                        if (changeID && _var.id == variableID)
                        {
                            variableNumber = i;
                        }

                        i++;
                    }

                    if (variableNumber == -1 && (parameters == null || parameters.Count == 0 || parameterID == -1))
                    {
                        // Wasn't found (variable was deleted?), so revert to zero
                        ACDebug.LogWarning("Previously chosen variable no longer exists!");
                        variableNumber = 0;
                        variableID     = 0;
                    }

                    variableNumber = EditorGUILayout.Popup("Variable:", variableNumber, labelList.ToArray());
                    variableID     = _vars [variableNumber].id;
                    showType       = _vars[variableNumber].type;
                }
                else
                {
                    EditorGUILayout.HelpBox("No variables exist!", MessageType.Info);
                    variableID     = -1;
                    variableNumber = -1;
                    return;
                }

                placeholderType = showType;
            }
            else
            {
                showType = placeholderType;
            }
            string label = "Statement: ";

            switch (showType)
            {
            case VariableType.Boolean:
                setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool);
                label += "=";
                if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                {
                    setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Boolean);
                    if (setParameterID < 0)
                    {
                        boolValue = (BoolValue)EditorGUILayout.EnumPopup(label, boolValue);
                    }
                }
                else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                {
                    ShowMecanimGUI();
                }
                break;

            case VariableType.Float:
                setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool);

                if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                {
                    setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod);

                    if (setVarMethod == SetVarMethod.Formula)
                    {
                        label += "=";

                        setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String);
                        if (setParameterID < 0)
                        {
                            formula = EditorGUILayout.TextField(label, formula);
                        }

                                                        #if UNITY_WP8
                        EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning);
                                                        #endif
                    }
                    else
                    {
                        if (setVarMethod == SetVarMethod.IncreaseByValue)
                        {
                            label += "+=";
                        }
                        else if (setVarMethod == SetVarMethod.SetValue)
                        {
                            label += "=";
                        }
                        else if (setVarMethod == SetVarMethod.SetAsRandom)
                        {
                            label += "= 0 to (exc.)";
                        }

                        setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Float);
                        if (setParameterID < 0)
                        {
                            floatValue = EditorGUILayout.FloatField(label, floatValue);

                            if (setVarMethod == SetVarMethod.SetAsRandom && floatValue < 0f)
                            {
                                floatValue = 0f;
                            }
                        }
                    }
                }
                else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                {
                    ShowMecanimGUI();
                }
                break;

            case VariableType.Integer:
                setVarMethodIntBool = (SetVarMethodIntBool)EditorGUILayout.EnumPopup("New value is:", setVarMethodIntBool);

                if (setVarMethodIntBool == SetVarMethodIntBool.EnteredHere)
                {
                    setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod);

                    if (setVarMethod == SetVarMethod.Formula)
                    {
                        label += "=";

                        setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String);
                        if (setParameterID < 0)
                        {
                            formula = EditorGUILayout.TextField(label, formula);
                        }

                                                        #if UNITY_WP8
                        EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning);
                                                        #endif
                    }
                    else
                    {
                        if (setVarMethod == SetVarMethod.IncreaseByValue)
                        {
                            label += "+=";
                        }
                        else if (setVarMethod == SetVarMethod.SetValue)
                        {
                            label += "=";
                        }
                        else if (setVarMethod == SetVarMethod.SetAsRandom)
                        {
                            label += ("= 0 to");
                        }

                        setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Integer);
                        if (setParameterID < 0)
                        {
                            intValue = EditorGUILayout.IntField(label, intValue);

                            if (setVarMethod == SetVarMethod.SetAsRandom && intValue < 0)
                            {
                                intValue = 0;
                            }
                        }
                    }
                }
                else if (setVarMethodIntBool == SetVarMethodIntBool.SetAsMecanimParameter)
                {
                    ShowMecanimGUI();
                }
                break;

            case VariableType.PopUp:
                setVarMethod = (SetVarMethod)EditorGUILayout.EnumPopup("Method:", setVarMethod);

                if (setVarMethod == SetVarMethod.Formula)
                {
                    label += "=";

                    setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String);
                    if (setParameterID < 0)
                    {
                        formula = EditorGUILayout.TextField(label, formula);
                    }

                                                #if UNITY_WP8
                    EditorGUILayout.HelpBox("This feature is not available for Windows Phone 8.", MessageType.Warning);
                                                #endif
                }
                else if (setVarMethod == SetVarMethod.IncreaseByValue || setVarMethod == SetVarMethod.SetValue)
                {
                    if (setVarMethod == SetVarMethod.IncreaseByValue)
                    {
                        label += "+=";
                    }
                    else if (setVarMethod == SetVarMethod.SetValue)
                    {
                        label += "=";
                    }

                    setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Integer);
                    if (setParameterID < 0)
                    {
                        if (setVarMethod == SetVarMethod.SetValue && changeID && _vars != null)
                        {
                            string[] popUpLabels = _vars[variableNumber].GenerateEditorPopUpLabels();
                            intValue = EditorGUILayout.Popup(label, intValue, popUpLabels);
                            placeholderPopUpLabelDataID = _vars[variableNumber].popUpID;
                        }
                        else if (setVarMethod == SetVarMethod.SetValue && !changeID && AdvGame.GetReferences().variablesManager != null)
                        {
                            // Parameter override
                            placeholderPopUpLabelDataID = AdvGame.GetReferences().variablesManager.ShowPlaceholderPresetData(placeholderPopUpLabelDataID);
                            PopUpLabelData popUpLabelData = AdvGame.GetReferences().variablesManager.GetPopUpLabelData(placeholderPopUpLabelDataID);

                            if (popUpLabelData != null && placeholderPopUpLabelDataID >= 0)
                            {
                                // Show placeholder labels
                                intValue = EditorGUILayout.Popup(label, intValue, popUpLabelData.GenerateEditorPopUpLabels());
                            }
                            else
                            {
                                intValue = EditorGUILayout.IntField(label, intValue);
                            }
                        }
                        else
                        {
                            intValue = EditorGUILayout.IntField(label, intValue);
                        }

                        if (setVarMethod == SetVarMethod.SetAsRandom && intValue < 0)
                        {
                            intValue = 0;
                        }
                    }
                }
                break;

            case VariableType.String:
                setVarMethodString = (SetVarMethodString)EditorGUILayout.EnumPopup("New value is:", setVarMethodString);

                label += "=";
                if (setVarMethodString == SetVarMethodString.EnteredHere)
                {
                    setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.String);
                    if (setParameterID < 0)
                    {
                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.LabelField(label, GUILayout.Width(140f));
                        EditorStyles.textField.wordWrap = true;
                        stringValue = EditorGUILayout.TextArea(stringValue, GUILayout.MaxWidth(400f));
                        EditorGUILayout.EndHorizontal();
                    }
                }
                else if (setVarMethodString == SetVarMethodString.SetAsMenuElementText)
                {
                    menuName    = EditorGUILayout.TextField("Menu name:", menuName);
                    elementName = EditorGUILayout.TextField("Element name:", elementName);

                    slotNumberParameterID = Action.ChooseParameterGUI("Slot # (optional):", parameters, slotNumberParameterID, ParameterType.Integer);
                    if (slotNumberParameterID < 0)
                    {
                        slotNumber = EditorGUILayout.IntField("Slot # (optional):", slotNumber);
                    }
                }
                break;

            case VariableType.Vector3:
                setVarMethodVector = (SetVarMethodVector)EditorGUILayout.EnumPopup("Method:", setVarMethodVector);

                if (setVarMethodVector == SetVarMethodVector.IncreaseByValue)
                {
                    label += "+=";
                }
                else if (setVarMethodVector == SetVarMethodVector.SetValue)
                {
                    label += "=";
                }

                setParameterID = Action.ChooseParameterGUI(label, parameters, setParameterID, ParameterType.Vector3);
                if (setParameterID < 0)
                {
                    vector3Value = EditorGUILayout.Vector3Field(label, vector3Value);
                }
                break;

            default:
                break;
            }
        }