public void OnGUI() { EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Number"); number = EditorGUILayout.IntField(number); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Activated"); activated = EditorGUILayout.Toggle(activated); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Parent"); parent = (ObstacleContainerScript)EditorGUILayout.ObjectField(parent, typeof(ObstacleContainerScript), true); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Obstacle"); obstacle = (LevelObstacleScript)EditorGUILayout.ObjectField(obstacle, typeof(LevelObstacleScript), false); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Level"); level = (LevelGeneratorScript)EditorGUILayout.ObjectField(level, typeof(LevelGeneratorScript), true); EditorGUILayout.EndHorizontal(); if (GUILayout.Button("Generate multiple object")) { parent.initializeChildrenList(); for (int i = 0; i < number; i++) { var obs = (LevelObstacleScript)PrefabUtility.InstantiatePrefab(obstacle); obs.gameObject.transform.position = new Vector3(0, 0, i); obs.gameObject.SetActive(activated); obs.setIndice(i); obs.setLevel(level); parent.AddChildren(obs); Undo.RegisterCreatedObjectUndo(obs.gameObject, "MultipleObstacle"); } } EditorGUILayout.EndVertical(); }
public void AddChildren(LevelObstacleScript go) { go.transform.parent = this.transform; children.Add(go); }