void Awake() { if (instance == null) { instance = this; lastSelectedGroup = 0; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } }
public override void OnInspectorGUI() { ShapesManager shapesManager = (ShapesManager)target;//get the target EditorGUILayout.Separator(); #if !(UNITY_5 || UNITY_2017 || UNITY_2018_0 || UNITY_2018_1 || UNITY_2018_2) //Unity 2018.3 or higher EditorGUILayout.BeginHorizontal(); GUI.backgroundColor = Colors.cyanColor; EditorGUILayout.Separator(); if (GUILayout.Button("Apply", GUILayout.Width(70), GUILayout.Height(30), GUILayout.ExpandWidth(false))) { PrefabUtility.ApplyPrefabInstance(shapesManager.gameObject, InteractionMode.AutomatedAction); } GUI.backgroundColor = Colors.whiteColor; EditorGUILayout.EndHorizontal(); #endif EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.HelpBox("Follow the instructions below on how to add new shape", MessageType.Info); EditorGUILayout.Separator(); showInstructions = EditorGUILayout.Foldout(showInstructions, "Instructions"); EditorGUILayout.Separator(); if (showInstructions) { EditorGUILayout.HelpBox("- Click on 'Add New Shape' button to add new Shape", MessageType.None); EditorGUILayout.HelpBox("- Click on 'Remove Last Shape' button to remove the lastest shape in the list", MessageType.None); EditorGUILayout.HelpBox("- Add Clip for each Shape and setup the Stars Time Period as you wish", MessageType.None); EditorGUILayout.HelpBox("- Click on 'Apply' button that located at the top to save your changes ", MessageType.None); } EditorGUILayout.Separator(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Review Alphabet Tracing", GUILayout.Width(180), GUILayout.Height(25))) { Application.OpenURL(Links.packageURL); } GUI.backgroundColor = Colors.greenColor; if (GUILayout.Button("More Assets", GUILayout.Width(110), GUILayout.Height(25))) { Application.OpenURL(Links.indieStudioStoreURL); } GUI.backgroundColor = Colors.whiteColor; GUILayout.EndHorizontal(); EditorGUILayout.Separator(); GUILayout.BeginHorizontal(); GUI.backgroundColor = Colors.greenColor; if (GUILayout.Button("Add New Shape", GUILayout.Width(110), GUILayout.Height(20))) { shapesManager.shapes.Add(new ShapesManager.Shape() { starsTimePeriod = 15 }); } GUI.backgroundColor = Colors.redColor; if (GUILayout.Button("Remove Last Shape", GUILayout.Width(150), GUILayout.Height(20))) { if (shapesManager.shapes.Count != 0) { shapesManager.shapes.RemoveAt(shapesManager.shapes.Count - 1); } } GUI.backgroundColor = Colors.whiteColor; GUILayout.EndHorizontal(); EditorGUILayout.Separator(); for (int i = 0; i < shapesManager.shapes.Count; i++) { shapesManager.shapes[i].showContents = EditorGUILayout.Foldout(shapesManager.shapes[i].showContents, "Shape[" + i + "]"); if (shapesManager.shapes[i].showContents) { EditorGUILayout.Separator(); shapesManager.shapes[i].gamePrefab = EditorGUILayout.ObjectField("Game Prefab", shapesManager.shapes[i].gamePrefab, typeof(GameObject), true) as GameObject; shapesManager.shapes[i].clip = EditorGUILayout.ObjectField("Clip", shapesManager.shapes[i].clip, typeof(AudioClip), true) as AudioClip; shapesManager.shapes[i].starsTimePeriod = EditorGUILayout.IntSlider("Stars Time Period", shapesManager.shapes[i].starsTimePeriod, 5, 500); EditorGUILayout.Separator(); GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(2)); } } if (GUI.changed) { DirtyUtil.MarkSceneDirty(); } }