private void OnEnable() { _target = (GameModeProperties)target; }
void ChoosePerspective() { EditorGUILayout.LabelField("Choose Perspective: ", subtitlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); GUI.DrawTexture(GUILayoutUtility.GetRect(100, 100, 100, 100), isoExample); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(choseISO); if (GUI.Button(GUILayoutUtility.GetRect(50, 50, 50, 50), "Isometric")) { if (scriptable != null) { scriptable.pers = Perspective.iso; } else { scriptable = CreateInstance <GameModeProperties>(); } choseISO = true; choseTP = false; choseTD = false; choseSIDE = false; selectedPers = "ISOMETRIC"; } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); GUI.DrawTexture(GUILayoutUtility.GetRect(100, 100, 100, 100), tpExample); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(choseTP); if (GUI.Button(GUILayoutUtility.GetRect(50, 50, 50, 50), "Third Person")) { if (scriptable != null) { scriptable.pers = Perspective.third; } else { scriptable = CreateInstance <GameModeProperties>(); } choseISO = false; choseTP = true; choseTD = false; choseSIDE = false; selectedPers = "THIRD PERSON"; } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); GUI.DrawTexture(GUILayoutUtility.GetRect(100, 100, 100, 100), sideExample); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(choseSIDE); if (GUI.Button(GUILayoutUtility.GetRect(50, 50, 50, 50), "Side-Scroller")) { if (scriptable != null) { scriptable.pers = Perspective.side; } else { scriptable = CreateInstance <GameModeProperties>(); } choseISO = false; choseTP = false; choseTD = false; choseSIDE = true; selectedPers = "SIDE-SCROLLER"; Debug.Log(scriptable.pers); } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); GUI.DrawTexture(GUILayoutUtility.GetRect(100, 100, 100, 100), tdEcample); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(choseTD); if (GUI.Button(GUILayoutUtility.GetRect(50, 50, 50, 50), "Top Down")) { if (scriptable != null) { scriptable.pers = Perspective.top; } else { scriptable = CreateInstance <GameModeProperties>(); } choseISO = false; choseTP = false; choseTD = true; choseSIDE = false; selectedPers = "TOP DOWN"; Debug.Log(scriptable.pers); } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); }
void CreateScriptable() { //ACA TE TIRA UN CARTEL DE UNITY QUE NO TE DEJA HACER NADA if (EditorUtility.DisplayDialog("Attention", "Is this information ok? " + "\n" + "\n" + selectedPers + "\n" + selectedMode + "\n" + selectedObj + "\n" + "LEVELS: " + howManyLevels, "Yes", "No")) { if (scriptable == null) { scriptable = CreateInstance <GameModeProperties>(); //SI NO SE CREO ANTES, SE CREA AHORA EL SCRIPTABLEOBJ } scriptable.amountOfLevels = howManyLevels; if (!AssetDatabase.IsValidFolder("Assets/Resources/Data")) { AssetDatabase.CreateFolder("Assets/Resources", "Data"); Debug.Log("The introduced folder doesn't exist, so I just created a default one for you."); AssetDatabase.Refresh(); } var path = AssetDatabase.GenerateUniqueAssetPath("Assets/Resources/Data/Game Mode Properties/Level_Properties.asset"); //SE CREA UN PATH DONDE GUARDAR EL SCRIPTABLE gameModePage = true; propertiesPage = false; //SE VUELVE A LA PAGINA DONDE SE ELIGE EL GAMEMODE AssetDatabase.CreateAsset(scriptable, path); //SE PONE EL SCRIPTABLE EN EL PATH for (int i = 0; i < howManyLevels; i++) //ACA SE CREAN LAS ESCENAS DEPENDIENDO LA PERSPECTIVA CON EL NOMBRE LEVEL0 { if (scriptable.pers == Perspective.side) { if (scriptable.gm == GameMode.endless) { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestEndlessSide.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } else if (scriptable.gm == GameMode.platform) { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestPlatSide.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } else { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestSurSide.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } } if (scriptable.pers == Perspective.top) { if (scriptable.gm == GameMode.endless) { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestEndlessTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } else if (scriptable.gm == GameMode.platform) { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestPlatTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } else { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } } if (scriptable.pers == Perspective.third) { if (scriptable.gm == GameMode.endless) { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestEndlessTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } else if (scriptable.gm == GameMode.platform) { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestPlatTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } else { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } } if (scriptable.pers == Perspective.iso) { if (scriptable.gm == GameMode.endless) { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestEndlessTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } else if (scriptable.gm == GameMode.platform) { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestPlatTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } else { AssetDatabase.CopyAsset("Assets/Scenes/MatiTestTop.unity", "Assets/Resources/Prefabs/Level" + i + ".unity"); } } } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); EditorSceneManager.OpenScene("Assets/Resources/Prefabs/Level0.unity"); //SE ABRE EL PRIMER NIVEL var manager = FindObjectOfType <GameManager>();// SETEO LOS VALORES DEL MANAGER DEL NUEVO NIVEL manager.scriptable = scriptable; if (scriptable.objPlatform == ObjectivePlatformer.CollectCoins) { manager.objPlatform.SetActive(false); } else if (scriptable.objPlatform == ObjectivePlatformer.GetToPointB) { manager.objPlatform.SetActive(false); } manager.myscenes = new UnityEngine.SceneManagement.Scene[howManyLevels]; manager.amountScenes = howManyLevels; for (int i = 0; i < howManyLevels; i++) //ACA QUISE CONSEGUIR TODAS LAS ESCENAS CREADAS Y GUARDARLAS EN UNA VARIABLE EN EL MANAGER DEL NIVEL { manager.myscenes[i] = UnityEngine.SceneManagement.SceneManager.GetSceneByPath("Assets/Resources/Prefabs/Level" + i + ".unity"); } PlayerGeneratorWindow.OpenWindow(); scriptable = null; //EL SCRIPTABLE DE LA VENTANA SE HACE NULL, Y SE VA A CREAR UNA DE CERO } }
void ChooseTypeOfGame() { //ME CANSE DE HACER COMENTARIOS EditorGUILayout.LabelField("Game Mode: ", subtitlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); GUI.DrawTexture(GUILayoutUtility.GetRect(100, 100, 100, 100), endlessExample); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(choseEndless); if (GUI.Button(GUILayoutUtility.GetRect(50, 50, 50, 50), "ENDLESS")) { choseEndless = true; choseSurvival = false; chosePlatformer = false; if (scriptable != null) { scriptable.gm = GameMode.endless; } else { scriptable = CreateInstance <GameModeProperties>(); } selectedMode = "ENDLESS"; Repaint(); } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); GUI.DrawTexture(GUILayoutUtility.GetRect(100, 100, 100, 100), platExample); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(chosePlatformer); if (GUI.Button(GUILayoutUtility.GetRect(50, 50, 50, 50), "PLATFORMER")) { choseEndless = false; choseSurvival = false; chosePlatformer = true; if (scriptable != null) { scriptable.gm = GameMode.platform; } else { scriptable = CreateInstance <GameModeProperties>(); } selectedMode = "PLATFORMER"; } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); GUI.DrawTexture(GUILayoutUtility.GetRect(100, 100, 100, 100), survExample); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(choseSurvival); if (GUI.Button(GUILayoutUtility.GetRect(50, 50, 50, 50), "SURVIVAL")) { choseEndless = false; choseSurvival = true; chosePlatformer = false; if (scriptable != null) { scriptable.gm = GameMode.survival; } else { scriptable = CreateInstance <GameModeProperties>(); } selectedMode = "SURVIVAL"; } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); }
void PropertiesGame() { EditorGUILayout.LabelField("Properties", titlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); if (chosePlatformer) //SI ELIGIO PLATAFORMERO DIFERENTES OBJETIVOS PARA GANAR NIVEL { if (scriptable != null) { scriptable.gm = GameMode.platform; } else { scriptable = CreateInstance <GameModeProperties>(); } EditorGUILayout.LabelField("Choose Objective ", subtitlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); endLevelEnd = EditorGUILayout.Toggle("Collect Coins", endLevelEnd); //GANAR COLECTANDO MONEDAS endLevelEnd = EditorGUILayout.Toggle("Get fom A point to B point", !endLevelEnd); //GANAR LLEGANDO AL OTRO PUNTO EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); EditorGUILayout.LabelField("How many Levels?", subtitlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); howManyLevels = EditorGUILayout.IntField("Levels: ", howManyLevels); if (endLevelEnd) //GANAR LLEGANDO AL OTRO PUNTO { selectedObj = "Win by Finishing Level"; scriptable.objPlatform = ObjectivePlatformer.GetToPointB; } if (!endLevelEnd)//GANAR COLECTANDO MONEDAS { selectedObj = "Collect Coins"; scriptable.objPlatform = ObjectivePlatformer.CollectCoins; } } if (choseSurvival) //SI ELIGIO SURVIVAL DIFERENTES OBJETIVOS PARA GANAR NIVEL { if (scriptable != null) { scriptable.gm = GameMode.survival; } else { scriptable = CreateInstance <GameModeProperties>(); } EditorGUILayout.LabelField("Choose Objective ", subtitlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); survTime = EditorGUILayout.Toggle("Kill Everyone", survTime); //GANA MATANDO A CIERTA CANTIDAD DE ENMIES survTime = EditorGUILayout.Toggle("Survive at a giving Time", !survTime); // GANA SOBREVIVIENDO UN TIEMPO EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); EditorGUILayout.LabelField("How many Levels?", subtitlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); howManyLevels = EditorGUILayout.IntField("Levels: ", howManyLevels); if (survTime) // GANA SOBREVIVIENDO UN TIEMPO { selectedObj = "Win surviving at a giving time"; scriptable.objPlatform = ObjectivePlatformer.BYTIME; } if (!survTime)//GANA MATANDO A CIERTA CANTIDAD DE ENMIES { selectedObj = "Win Killing everyone"; scriptable.objPlatform = ObjectivePlatformer.BYKILLING; } } if (choseEndless) { if (scriptable != null) { scriptable.gm = GameMode.endless; } else { scriptable = CreateInstance <GameModeProperties>(); } EditorGUILayout.LabelField("Choose Objective ", subtitlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); killEveryOnePlat = EditorGUILayout.Toggle("Based on Time", killEveryOnePlat); // GANA SOBREVIVIENDO UN TIEMPO killEveryOnePlat = EditorGUILayout.Toggle("Based on Points", !killEveryOnePlat); //GANA CONSIGUIENDO PUNTOS EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); EditorGUILayout.LabelField("How many Levels?", subtitlestyle); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("----------------------------------------------------------", titlestyle); howManyLevels = EditorGUILayout.IntField("Levels: ", howManyLevels); if (!killEveryOnePlat) { selectedObj = "Based on Time";// GANA SOBREVIVIENDO UN TIEMPO scriptable.objPlatform = ObjectivePlatformer.BYTIME; } if (killEveryOnePlat) { selectedObj = "Based on Points";// GANA CONSIGUIENDO PUNTOS scriptable.objPlatform = ObjectivePlatformer.BYPOINTS; } } //LO SELECCIONADO SE GUARDA EN UN ENUM QUE ES "GAMEMODE" y "PERSPECTIVE" }