public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { ArcadeAttribute arcadeAttribute = attribute as ArcadeAttribute; position.width = position.width - arcadeAttribute.width - 16; EditorGUI.PropertyField(position, property, label); position.x = position.x + position.width; position.width = arcadeAttribute.width + 16; if (GUI.Button(position, arcadeAttribute.label)) { ModelSetup obj = property.serializedObject.targetObject as ModelSetup; // if (obj == null) { return; } //Debug.Log("I belong to " + obj.descriptiveName); if (arcadeAttribute.label == "Model") { EditorModelSetupSelectModel.ShowWindow(obj.transform.gameObject); } if (arcadeAttribute.label == "Emulator") { if (ArcadeManager.emulatorsConfigurationList.Count < 1) { if (!ArcadeManager.loadSaveEmulatorConfiguration.LoadEmulatorsConfigurationList()) { return; } } EditorModelSetupEmulator.ShowWindow(obj.transform.gameObject); } if (arcadeAttribute.label == "Game") { EmulatorConfiguration emulatorConfiguration = ArcadeManager.loadSaveEmulatorConfiguration.GetEmulatorConfiguration(obj.emulator); if (emulatorConfiguration != null) { List <ModelProperties> gamelist = emulatorConfiguration.masterGamelist; EditorModelSetupGame.ShowWindow(obj.transform.gameObject, gamelist); } } if (arcadeAttribute.label == "Folder") { string folder = FileManager.DialogGetFolderPath(true); if (folder != null) { property.stringValue = folder; } } if (arcadeAttribute.label == "Exe") { string exe = FileManager.DialogGetFilePart("Select LibretroCore Executable", null, FileManager.FilePart.Name_Extension); if (exe != null) { property.stringValue = exe; } } } }
public override void OnInspectorGUI() { GUILayout.Space(8f); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("EMULATOR PROPERTIES", EditorStyles.boldLabel); EditorGUILayout.EndHorizontal(); GUILayout.Space(8f); DrawDefaultInspector(); GUILayout.Space(8f); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Delete Emulator Configuration", GUILayout.Width(200), GUILayout.Height(EditorGUIUtility.singleLineHeight))) { DestroyImmediate(EmulatorSetupScript); ArcadeManager.loadSaveEmulatorConfiguration.SaveEmulators(); ArcadeManager.loadSaveEmulatorConfiguration.LoadEmulators(); } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.Space(8f); EditorGUILayout.BeginHorizontal(); GUIStyle guiStyle = new GUIStyle(); guiStyle.wordWrap = true; GUILayout.Label("Load, Save and Add Emulator Configurations from the 3DArcade Menu.", guiStyle); EditorGUILayout.EndHorizontal(); GUILayout.Space(16f); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("MASTER GAMELIST", EditorStyles.boldLabel); EditorGUILayout.EndHorizontal(); GUILayout.Space(8f); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Select", GUILayout.Width(80), GUILayout.Height(EditorGUIUtility.singleLineHeight))) { EditorEmulatorSetupSelectMasterGamelist.ShowWindow(EmulatorSetupScript); } if (GUILayout.Button("Update", GUILayout.Width(80), GUILayout.Height(EditorGUIUtility.singleLineHeight))) { EmulatorConfiguration emulatorConfiguration = ArcadeManager.loadSaveEmulatorConfiguration.GetEmulatorConfiguration(EmulatorSetupScript.id); if (emulatorConfiguration != null) { emulatorConfiguration = UpdateMasterGamelists.UpdateMasterGamelistFromEmulatorConfiguration(emulatorConfiguration); ArcadeManager.loadSaveEmulatorConfiguration.SaveEmulatorConfiguration(emulatorConfiguration); } } if (GUILayout.Button("Show", GUILayout.Width(80), GUILayout.Height(EditorGUIUtility.singleLineHeight))) { EmulatorConfiguration emulatorConfiguration = ArcadeManager.loadSaveEmulatorConfiguration.GetEmulatorConfiguration(EmulatorSetupScript.id); if (emulatorConfiguration != null) { List <ModelProperties> gamelist = emulatorConfiguration.masterGamelist; EditorModelSetupGame.ShowWindow(EmulatorSetupScript.transform.gameObject, gamelist); } } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); }