Exemplo n.º 1
0
        private void ShowVisualsOption()
        {
            actionsScript.ActionVisuals = (Gaze_Actions.ACTIVABLE_OPTION)EditorGUILayout.EnumPopup("Visuals", actionsScript.ActionVisuals);

            if (actionsScript.ActionVisuals == Gaze_Actions.ACTIVABLE_OPTION.NOTHING)
            {
                return;
            }

            actionsScript.AlterAllVisuals = EditorGUILayout.Toggle("Alter All Visuals", actionsScript.AlterAllVisuals);


            if (!actionsScript.AlterAllVisuals)
            {
                // Get All the renderers on this IO
                allRenderers = actionsScript.visualsScript.GetAllRenderers();
                actionsScript.UpdateSelectedRenderers(allRenderers.Count);
                if (allRenderers.Count < 1)
                {
                    // If no visuals on this object, dont show anything else than warning
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.HelpBox("No visual found.", MessageType.Warning);
                    EditorGUILayout.EndHorizontal();
                }

                else
                {
                    // storing all this object visuals name
                    allVisuals = new string[allRenderers.Count];
                    for (int i = 0; i < allVisuals.Length; i++)
                    {
                        allVisuals[i] = allRenderers[i].gameObject.name;
                    }

                    if (actionsScript.selectedRenderers.Count < 1)
                    {
                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.HelpBox("Add at least one visual or deactivate this condition if not needed.", MessageType.Warning);
                        EditorGUILayout.EndHorizontal();
                    }

                    // for all selected renderers
                    for (int i = 0; i < actionsScript.selectedRenderers.Count; i++)
                    {
                        // get the corresponding Renderer from the AllRenderers List
                        int selectedEntryIndex = actionsScript.selectedRenderers[i];

                        //display it
                        EditorGUILayout.BeginHorizontal();
                        actionsScript.selectedRenderers[i] = EditorGUILayout.Popup(selectedEntryIndex, allVisuals);

                        // add a remove button
                        if (GUILayout.Button("-"))
                        {
                            actionsScript.RemoveSelectedRenderer(actionsScript.selectedRenderers[i]);
                        }
                        EditorGUILayout.EndHorizontal();
                    }

                    // display 'add' button
                    if (GUILayout.Button("+"))
                    {
                        actionsScript.AddSelectedRenderer(allRenderers.Count);
                    }

                    EditorGUILayout.Space();
                }
            }
        }