public override void OnInspectorGUI() { base.OnInspectorGUI(); Transition transition = (Transition)target; Vector2 BoxSize = transition.gameObject.GetComponent <BoxCollider2D>().size; if (BoxSize != transition.LevelSize) { showMessage = false; } opt = (OPTIONS)EditorGUILayout.EnumPopup("Anchor:", opt); int operation = (int)opt; GUILayout.BeginHorizontal(); if (GUILayout.Button("ApplySize")) { if (LevelSize.x >= 40 && LevelSize.y >= 22f) { transition.apply(operation); showMessage = true; } else { if (EditorUtility.DisplayDialog("Anomaly Detected", "Either the height or width of the level is smaller than the acceptable value. (40 x 22)", "Reset to default")) { transition.ResetSize(BoxSize); } } } if (GUILayout.Button("FixEdges")) { transition.FixEdge(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); Vector2 toSpawn = transition.SpawningPoint; if (GUILayout.Button("AddSpawn")) { if (Mathf.Abs(toSpawn.x) > (0.5f * LevelSize.x - 1) || Mathf.Abs(toSpawn.y) > (0.5f * LevelSize.y - 1)) { EditorUtility.DisplayDialog("Anomaly Detected", "Spawning point is too close to or over the edges.", "Ok"); } else { transition.AddSpawn(Vector2.zero); } } if (GUILayout.Button("RemoveSpawn")) { if (transition.Spawn.Count - 1 < transition.spawnIndex) { EditorUtility.DisplayDialog("Anomaly Detected", "Invalid index input.", "Ok"); } else { transition.RemoveSpawn(transition.spawnIndex); transition.spawnIndex = 0; } } GUILayout.EndHorizontal(); if (GUILayout.Button("ModifySpawn")) { if (transition.spawnIndex > transition.Spawn.Count - 1 || Mathf.Abs(toSpawn.x) > (0.5f * LevelSize.x - 1) || Mathf.Abs(toSpawn.y) > (0.5f * LevelSize.y - 1)) { EditorUtility.DisplayDialog("Anomaly Detected", "Spawning point is too close to or over the edges.", "Ok"); } else { transition.ModifySpawn(transition.spawnIndex, toSpawn); } } if (GUILayout.Button("StartHere")) { if (transition.spawnIndex > transition.Spawn.Count - 1) { EditorUtility.DisplayDialog("Anomaly Detected", "Invalid index input.", "Ok"); } else { holder.corner = new Vector2(transition.transform.position.x - (0.5f * (transition.LevelSize.x - 40f)), transition.transform.position.y - (0.5f * (transition.LevelSize.y - 22))); holder.corner2 = new Vector2(transition.transform.position.x + (0.5f * (transition.LevelSize.x - 40f)), transition.transform.position.y + (0.5f * (transition.LevelSize.y - 22))); player.currentLevel = transition.LevelIndex; player.transform.position = new Vector3(transition.transform.position.x + transition.Spawn[transition.spawnIndex].x, transition.transform.position.y + transition.Spawn[transition.spawnIndex].y, player.transform.position.z); holder.transform.position = transition.CamPos(player.transform.position); } } if (showMessage) { EditorGUILayout.HelpBox("Success!", MessageType.Info); } if (currentIndex != transition.spawnIndex) { currentIndex = transition.spawnIndex; if (transition.spawnIndex <= transition.Spawn.Count() - 1) { transition.SpawningPoint = transition.Spawn[currentIndex]; } } if (transition.spawnIndex > transition.Spawn.Count() - 1) { EditorGUILayout.HelpBox("Invalid Spawn Index.", MessageType.Warning); } }