diff --git a/Game/Assets/AudioLoop.cs b/Game/Assets/Scripts/AudioLoop.cs similarity index 100% rename from Game/Assets/AudioLoop.cs rename to Game/Assets/Scripts/AudioLoop.cs diff --git a/Game/Assets/AudioLoop.cs.meta b/Game/Assets/Scripts/AudioLoop.cs.meta similarity index 100% rename from Game/Assets/AudioLoop.cs.meta rename to Game/Assets/Scripts/AudioLoop.cs.meta diff --git a/Game/Assets/Scripts/CanvasFade.cs b/Game/Assets/Scripts/CanvasFade.cs new file mode 100644 index 0000000..37d8147 --- /dev/null +++ b/Game/Assets/Scripts/CanvasFade.cs @@ -0,0 +1,56 @@ +/* + Author : Wai Lam + Date : 11/2/2025 + Description : Car obstacle + */ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.SceneManagement; + +public class CanvasFade : MonoBehaviour +{ + public CanvasGroup fadeCanvasGroup; // Assign in Inspector + public float fadeDuration = 1f; // Duration for fade in/out + public float displayDuration = 5f; // Time the UI stays fully visible + public string nextSceneName; // Name of the scene to load + + private bool hasTriggered = false; // Prevent multiple triggers + + private void OnTriggerEnter(Collider other) + { + // Check if the player entered the trigger + if (!hasTriggered && other.CompareTag("Player")) + { + hasTriggered = true; + StartCoroutine(FadeInAndLoadScene()); + } + } + + IEnumerator FadeInAndLoadScene() + { + // Fade In + yield return StartCoroutine(Fade(0f, 1f, fadeDuration)); + + // Display UI for 5 seconds + yield return new WaitForSeconds(displayDuration); + + // Load the next scene + SceneManager.LoadScene(nextSceneName); + } + + IEnumerator Fade(float startAlpha, float endAlpha, float duration) + { + float elapsed = 0f; + fadeCanvasGroup.alpha = startAlpha; + + while (elapsed < duration) + { + elapsed += Time.deltaTime; + fadeCanvasGroup.alpha = Mathf.Lerp(startAlpha, endAlpha, elapsed / duration); + yield return null; + } + + fadeCanvasGroup.alpha = endAlpha; + } +} diff --git a/Game/Assets/Scripts/CanvasFade.cs.meta b/Game/Assets/Scripts/CanvasFade.cs.meta new file mode 100644 index 0000000..3813212 --- /dev/null +++ b/Game/Assets/Scripts/CanvasFade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5bae7a3fb14a3854ca6668491a8257b9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Car.cs b/Game/Assets/Scripts/Car.cs similarity index 100% rename from Game/Assets/Car.cs rename to Game/Assets/Scripts/Car.cs diff --git a/Game/Assets/Car.cs.meta b/Game/Assets/Scripts/Car.cs.meta similarity index 100% rename from Game/Assets/Car.cs.meta rename to Game/Assets/Scripts/Car.cs.meta