From c4f5e677bfe5c4877a11c9c6304d5831fdf99bd3 Mon Sep 17 00:00:00 2001 From: MaximilienBlanchardBizien1 Date: Sat, 8 Jul 2023 13:27:46 -0400 Subject: [PATCH] =?UTF-8?q?-=20Impl=C3=A9mentation=20compl=C3=A8te=20de=20?= =?UTF-8?q?l'affichage=20des=20ic=C3=B4nes=20sur=20la=20s=C3=A9lection=20d?= =?UTF-8?q?es=20niveaux;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Réunsinage de l'appel de niveau. --- Assets/Scenes/LevelSelect.unity | 191 ++++++++++++++++++ Assets/Scripts/LevelEditor/WorldEditor.cs | 16 +- Assets/Scripts/LevelManager/LevelSaveClass.cs | 45 +++++ .../LevelManager/LevelSaveClass.cs.meta | 11 + 4 files changed, 257 insertions(+), 6 deletions(-) create mode 100644 Assets/Scripts/LevelManager/LevelSaveClass.cs create mode 100644 Assets/Scripts/LevelManager/LevelSaveClass.cs.meta diff --git a/Assets/Scenes/LevelSelect.unity b/Assets/Scenes/LevelSelect.unity index 2440c32..9555fbd 100644 --- a/Assets/Scenes/LevelSelect.unity +++ b/Assets/Scenes/LevelSelect.unity @@ -268,6 +268,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 20 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 5 @@ -415,6 +427,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 18.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 8 @@ -562,6 +586,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 19.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 11 @@ -1030,6 +1066,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 19.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 9 @@ -1253,6 +1301,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 17.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 4 @@ -1357,6 +1417,17 @@ GameObject: m_CorrespondingSourceObject: {fileID: 1893888152770301340, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} m_PrefabInstance: {fileID: 1330348922} m_PrefabAsset: {fileID: 0} +--- !u!114 &1340105976 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3405186844740662671, guid: 074c072b696214a4ba44ff66e9a7d9a6, type: 3} + m_PrefabInstance: {fileID: 3405186843506383548} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 551b5e1cdf881454091dab91f3b468e8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1355576000 PrefabInstance: m_ObjectHideFlags: 0 @@ -1400,6 +1471,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 17.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 6 @@ -1697,6 +1780,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 19.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 10 @@ -1844,6 +1939,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 16.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 2 @@ -2108,6 +2215,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 18.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 3 @@ -2255,6 +2374,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 17.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 7 @@ -2359,6 +2490,50 @@ GameObject: m_CorrespondingSourceObject: {fileID: 1893888152770301340, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} m_PrefabInstance: {fileID: 1878632746} m_PrefabAsset: {fileID: 0} +--- !u!1 &1896950921 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1896950923} + - component: {fileID: 1896950922} + m_Layer: 0 + m_Name: LevelSave + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1896950922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1896950921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fc8ad172127676148a68f7d85f01e5dc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1896950923 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1896950921} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 527.7125, y: 260.25394, z: 5.853995} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1893888154391728751 PrefabInstance: m_ObjectHideFlags: 0 @@ -2398,6 +2573,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 16.999992 objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1340105976} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CallLevelWorld1 + objectReference: {fileID: 0} + - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: WorldEditor, GameAssembly + objectReference: {fileID: 0} - target: {fileID: 1893888152770301338, guid: eb25bde5e3c72d34fbc9095e2c83cdb4, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument value: 1 @@ -2552,6 +2739,10 @@ PrefabInstance: propertyPath: m_Name value: WorldMapEditor objectReference: {fileID: 0} + - target: {fileID: 3405186844740662671, guid: 074c072b696214a4ba44ff66e9a7d9a6, type: 3} + propertyPath: saveClass + value: + objectReference: {fileID: 1896950922} - target: {fileID: 3405186844740662671, guid: 074c072b696214a4ba44ff66e9a7d9a6, type: 3} propertyPath: buttonList.Array.size value: 11 diff --git a/Assets/Scripts/LevelEditor/WorldEditor.cs b/Assets/Scripts/LevelEditor/WorldEditor.cs index 0ddb836..c55258e 100644 --- a/Assets/Scripts/LevelEditor/WorldEditor.cs +++ b/Assets/Scripts/LevelEditor/WorldEditor.cs @@ -9,13 +9,15 @@ using UnityEditor; public class WorldEditor : MonoBehaviour { [SerializeField] - GameObject[] buttonList; + private GameObject[] buttonList; [SerializeField] private Sprite _unlockedIcon; [SerializeField] private Sprite _lockedIcon; [SerializeField] private Sprite _savedIcon; + [SerializeField] + private LevelSaveClass saveClass; // Start is called before the first frame update void Start() @@ -35,23 +37,25 @@ public class WorldEditor : MonoBehaviour */ public void UnlockLevels() { + int counterIndex = 0; foreach(GameObject CurrentLevelButton in buttonList) { - //TODO: a Remplacer avec une confirmation que le niveau est debloque. - if (true) + if (saveClass.GetLevelState(counterIndex) == LevelSaveClass.LevelState.UNLOCKED) { CurrentLevelButton.SetActive(true); ShowUnlockedIcon(CurrentLevelButton); } - else if (false) + else if (saveClass.GetLevelState(counterIndex) == LevelSaveClass.LevelState.LOCKED) { - CurrentLevelButton.SetActive(false); + //CurrentLevelButton.SetActive(false); ShowLockedIcon(CurrentLevelButton); } else { + CurrentLevelButton.SetActive(true); ShowSavedIcon(CurrentLevelButton); } + counterIndex++; } } @@ -72,7 +76,7 @@ public class WorldEditor : MonoBehaviour public void CallLevelWorld1(int levelToCall) { string levelToGet = "1-" + levelToCall; - if (buttonList[levelToCall - 1].GetComponent().sprite.name != "worldmap_level_locked.png") + if (buttonList[levelToCall - 1].GetComponent().sprite.name != "worldmap_level_locked") { LevelManager.Instance.LoadLevel(levelToGet, true); } diff --git a/Assets/Scripts/LevelManager/LevelSaveClass.cs b/Assets/Scripts/LevelManager/LevelSaveClass.cs new file mode 100644 index 0000000..c3a22f4 --- /dev/null +++ b/Assets/Scripts/LevelManager/LevelSaveClass.cs @@ -0,0 +1,45 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LevelSaveClass : MonoBehaviour +{ + public enum LevelState + { + UNLOCKED, + LOCKED, + SAVED + } + + private LevelState[] levelUnlocked = { LevelState.UNLOCKED, LevelState.UNLOCKED, LevelState.UNLOCKED, LevelState.SAVED, + LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED, LevelState.LOCKED }; + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + + public void UnlockNextLevel(int levelNumber) + { + if(levelNumber == 10) + { + //UnlockNextWorld(); + } + else + { + levelUnlocked[levelNumber + 1] = LevelState.UNLOCKED; + } + } + + public LevelState GetLevelState(int index) + { + return levelUnlocked[index]; + } +} diff --git a/Assets/Scripts/LevelManager/LevelSaveClass.cs.meta b/Assets/Scripts/LevelManager/LevelSaveClass.cs.meta new file mode 100644 index 0000000..b199227 --- /dev/null +++ b/Assets/Scripts/LevelManager/LevelSaveClass.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc8ad172127676148a68f7d85f01e5dc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: