public override void OnInspectorGUI() { DefaultGameState defaultGameState = (DefaultGameState)target; EditorGUILayout.Space(); EditorGUILayout.LabelField("Default Game States", new GUIStyle { alignment = TextAnchor.MiddleCenter, fontSize = 18, fontStyle = FontStyle.Bold }); EditorGUILayout.Space(); foreach (GameState gameState in Enum.GetValues(typeof(GameState))) { if (!defaultGameState.GameStateInfos.Exists(info => info.GameState == gameState)) { defaultGameState.GameStateInfos.Add(new DefaultGameState.GameStateInfo { GameState = gameState, State = State.Disabled }); } } foreach (DefaultGameState.GameStateInfo info in defaultGameState.GameStateInfos) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(info.GameState.ToString()); info.State = (State)EditorGUILayout.EnumPopup(info.State); EditorGUILayout.EndHorizontal(); } }
static void CreateBuildingViewDefinitions() { DefaultGameState asset = ScriptableObject.CreateInstance <DefaultGameState>(); AssetDatabase.CreateAsset(asset, DefaultGameState.DefaultGameStateDefinitionPath); AssetDatabase.SaveAssets(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; }