From c81e90589f46411c06d17328b0f110556b55355b Mon Sep 17 00:00:00 2001 From: Pasha Bibko <156938226+PashaBibko@users.noreply.github.com> Date: Tue, 14 Apr 2026 14:11:47 +0100 Subject: [PATCH] Fixed Scene Transitions --- Assets/Scripts/Game/SceneController.cs | 15 ++++++++++----- Assets/Scripts/Game/SceneControllerTransition.cs | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Assets/Scripts/Game/SceneController.cs b/Assets/Scripts/Game/SceneController.cs index 08d328d..ed3f147 100644 --- a/Assets/Scripts/Game/SceneController.cs +++ b/Assets/Scripts/Game/SceneController.cs @@ -32,6 +32,8 @@ namespace Fruitomation.Game Transition.OnCreation(canvas); } + private const float FadeMultiplier = 4f; + private IEnumerator StartLoadInternal(string scene) { AsyncOperation operation = SceneManager.LoadSceneAsync(scene); @@ -50,10 +52,10 @@ namespace Fruitomation.Game while (lerp < 1f) { - lerp += Time.unscaledDeltaTime; + lerp += Time.unscaledDeltaTime * FadeMultiplier; Transition.LerpValue = Mathf.Clamp01(lerp); - yield return null; // Waits for next frame + yield return new WaitForEndOfFrame(); } operation.allowSceneActivation = true; @@ -61,14 +63,17 @@ namespace Fruitomation.Game private IEnumerator EndLoadInternal() { + yield return new WaitForSecondsRealtime(0.2f); + Transition.GoingUp = true; + float lerp = 0f; while (lerp < 1f) { - lerp += Time.unscaledDeltaTime; - Transition.LerpValue = Mathf.Clamp01(lerp); + lerp += Time.unscaledDeltaTime * FadeMultiplier; + Transition.LerpValue = Mathf.Clamp01(1f - lerp); - yield return null; // Waits for next frame + yield return new WaitForEndOfFrame(); // Waits for next frame } Time.timeScale = 1f; diff --git a/Assets/Scripts/Game/SceneControllerTransition.cs b/Assets/Scripts/Game/SceneControllerTransition.cs index 086f565..f59f074 100644 --- a/Assets/Scripts/Game/SceneControllerTransition.cs +++ b/Assets/Scripts/Game/SceneControllerTransition.cs @@ -16,6 +16,7 @@ namespace Fruitomation.Game { Image img = gameObject.AddComponent(); img.color = Color.black; + img.raycastTarget = true; CanvasRect = canvas.GetComponent(); Rect = transform.GetComponent();