protected void DrawAdd() { GUILayout.BeginHorizontal(); GUILayout.Label("Modifier name"); newModifierName = GUILayout.TextArea(newModifierName); GUILayout.EndHorizontal(); GUILayout.Label("Modifier type"); int modiferFlagChanged = GUILayout.SelectionGrid(modifierFlag, modifierTypes, Mathf.Min(modifierTypes.Length, 4), GUIResources.GetStyle("radio_text_button")); if (modiferFlagChanged != modifierFlag) { modifierFlag = modiferFlagChanged; if (modifierTypes[modifierFlag].Contains("Material")) { List <Renderer> xFormOptions = effect.GetModelTransforms()[0].GetComponentsInChildren <Renderer>().ToList(); transformOptions = new string[xFormOptions.Count]; for (int i = 0; i < xFormOptions.Count; i++) { transformOptions[i] = xFormOptions[i].gameObject.name; } } else if (modifierTypes[modifierFlag].Contains("Light")) { List <Light> xFormOptions = effect.GetModelTransforms()[0].GetComponentsInChildren <Light>().ToList(); transformOptions = new string[xFormOptions.Count]; for (int i = 0; i < xFormOptions.Count; i++) { transformOptions[i] = xFormOptions[i].gameObject.name; } } else { List <Transform> xFormOptions = effect.GetModelTransforms()[0].GetComponentsInChildren <Transform>().ToList(); transformOptions = new string[xFormOptions.Count]; for (int i = 0; i < xFormOptions.Count; i++) { transformOptions[i] = xFormOptions[i].name; } } transformFlag = 0; } GUILayout.Label("Target transform name"); transformFlag = GUILayout.SelectionGrid(transformFlag, transformOptions, Mathf.Min(transformOptions.Length, 3), GUIResources.GetStyle("radio_text_button")); GUILayout.BeginHorizontal(); GUILayout.Label("Controller name"); controllerFlag = GUILayout.SelectionGrid(controllerFlag, controllerTypes, Mathf.Min(controllerTypes.Length, 4), GUIResources.GetStyle("radio_text_button")); GUILayout.EndHorizontal(); if (GUILayout.Button("Add")) { effect.AddModifier(CreateNewModifier()); showWindow = false; } if (GUILayout.Button("Cancel")) { showWindow = false; } }