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(); } } }