public override void OnInspectorGUI() { // Update the serializedProperty - always do this in the beginning of OnInspectorGUI. serializedObject.Update(); EditorGUILayout.BeginHorizontal(); if (MyAutoTileMap.Tileset != null && MyAutoTileMap.Tileset.AtlasTexture == null) { MyAutoTileMap.Tileset.AtlasTexture = EditorGUILayout.ObjectField("Tileset Atlas", MyAutoTileMap.Tileset.AtlasTexture, typeof(Texture2D), false) as Texture2D; if (GUILayout.Button("Edit Tileset...")) { AutoTilesetEditorWindow.ShowDialog(MyAutoTileMap.Tileset); } } else { MyAutoTileMap.Tileset = (AutoTileset)EditorGUILayout.ObjectField("Tileset", MyAutoTileMap.Tileset, typeof(AutoTileset), false); } if (MyAutoTileMap.Tileset == null) { if (GUILayout.Button("Create...")) { MyAutoTileMap.Tileset = RpgMapMakerEditor.CreateTileset(); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); MyAutoTileMap.MapData = (AutoTileMapData)EditorGUILayout.ObjectField("Map Data", MyAutoTileMap.MapData, typeof(AutoTileMapData), false); if (MyAutoTileMap.MapData == null && GUILayout.Button("Create...")) { MyAutoTileMap.MapData = RpgMapMakerEditor.CreateAutoTileMapData(); } EditorGUILayout.EndHorizontal(); if (MyAutoTileMap.Tileset != null && MyAutoTileMap.MapData != null && MyAutoTileMap.IsInitialized) { string[] toolBarButtonNames = System.Enum.GetNames(typeof(eTabType)); s_tabType = (eTabType)GUILayout.Toolbar((int)s_tabType, toolBarButtonNames); switch (s_tabType) { case eTabType.Settings: DrawSettingsTab(); break; case eTabType.Paint: DrawPaintTab(); break; case eTabType.Data: DrawDataTab(); break; } } else if (!MyAutoTileMap.IsInitialized) { MyAutoTileMap.LoadMap(); } else { EditorGUILayout.HelpBox("You need to select or create a Tileset and a Map Data asset", MessageType.Info); } if (GUI.changed) { EditorUtility.SetDirty(MyAutoTileMap); if (MyAutoTileMap.Tileset != null) { EditorUtility.SetDirty(MyAutoTileMap.Tileset); } if (MyAutoTileMap.MapData != null) { EditorUtility.SetDirty(MyAutoTileMap.MapData); } } // Apply changes to the serializedProperty - always do this in the end of OnInspectorGUI. serializedObject.ApplyModifiedProperties(); }
public static DirectionalAnimationController CreateAsset() { return(RpgMapMakerEditor.CreateAssetInSelectedDirectory <DirectionalAnimationController>()); }