From e5f6f9fa54c487dc02a5c270d4e5609d4e6ec6ce Mon Sep 17 00:00:00 2001 From: louis Date: Thu, 9 Jan 2025 11:05:24 +0100 Subject: [PATCH] LoadAsync + fix button play --- Assets/Scenes/MainMenu.unity | 4 ++-- Assets/Scripts/GameSession/GameSession.cs | 27 +++++++++++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Assets/Scenes/MainMenu.unity b/Assets/Scenes/MainMenu.unity index 1e53a08..6d79e54 100644 --- a/Assets/Scenes/MainMenu.unity +++ b/Assets/Scenes/MainMenu.unity @@ -456,8 +456,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -287.83038, y: -33.478283} - m_SizeDelta: {x: 140.4212, y: 256.4461} + m_AnchoredPosition: {x: -273.40057, y: -40.693207} + m_SizeDelta: {x: 127.3032, y: 299.7355} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &585937283 MonoBehaviour: diff --git a/Assets/Scripts/GameSession/GameSession.cs b/Assets/Scripts/GameSession/GameSession.cs index a2ba74f..7287bc7 100644 --- a/Assets/Scripts/GameSession/GameSession.cs +++ b/Assets/Scripts/GameSession/GameSession.cs @@ -91,10 +91,32 @@ public class GameSession : MonoBehaviour,IResettable public void GoToGameScene() { - SceneManager.LoadScene("GameScene", LoadSceneMode.Single); + StartCoroutine(LoadGameSceneAsync()); + } + + private IEnumerator LoadGameSceneAsync() + { + AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("GameScene", LoadSceneMode.Single); + asyncLoad.allowSceneActivation = false; + + while (!asyncLoad.isDone) + { + // Indiquer la progression de chargement (0 à 0.9) + float progress = Mathf.Clamp01(asyncLoad.progress / 0.9f); + Debug.Log($"Loading progress: {progress * 100}%"); + + // Activer la scène lorsqu'elle est prête + if (asyncLoad.progress >= 0.9f) + { + asyncLoad.allowSceneActivation = true; + } + + yield return null; + } ResetToDefault(); } + public void GoToMainMenu() { SceneManager.LoadScene("MainMenu", LoadSceneMode.Single); @@ -104,6 +126,7 @@ public class GameSession : MonoBehaviour,IResettable public void ResetToDefault() { PauseSession(false); - currentPlayer.ResetToDefault(); + if(currentPlayer !=null) + currentPlayer.ResetToDefault(); } } \ No newline at end of file