go to school in progress

This commit is contained in:
yauwailam 2025-02-12 21:01:29 +08:00
parent 5b0a7cd508
commit 8591ec7eb4
6 changed files with 163 additions and 43 deletions

View file

@ -19971,7 +19971,8 @@ Transform:
m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children:
- {fileID: 1776114652}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &278618526 --- !u!114 &278618526
@ -127740,7 +127741,7 @@ RectTransform:
- {fileID: 620624015} - {fileID: 620624015}
- {fileID: 1839460624} - {fileID: 1839460624}
- {fileID: 197586935} - {fileID: 197586935}
m_Father: {fileID: 0} m_Father: {fileID: 278618525}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
@ -165901,7 +165902,6 @@ SceneRoots:
- {fileID: 1898819870} - {fileID: 1898819870}
- {fileID: 649665534} - {fileID: 649665534}
- {fileID: 347656174} - {fileID: 347656174}
- {fileID: 1776114652}
- {fileID: 14967089} - {fileID: 14967089}
- {fileID: 1688857688} - {fileID: 1688857688}
- {fileID: 533820784} - {fileID: 533820784}

View file

@ -4064,7 +4064,7 @@ PrefabInstance:
objectReference: {fileID: 1079096153} objectReference: {fileID: 1079096153}
- target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_VersionIndex propertyPath: m_VersionIndex
value: 1789 value: 1792
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
@ -8404,7 +8404,7 @@ PrefabInstance:
objectReference: {fileID: 345227675} objectReference: {fileID: 345227675}
- target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_VersionIndex propertyPath: m_VersionIndex
value: 1789 value: 1792
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
@ -31721,7 +31721,7 @@ PrefabInstance:
objectReference: {fileID: 315325997} objectReference: {fileID: 315325997}
- target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_VersionIndex propertyPath: m_VersionIndex
value: 1792 value: 1795
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
@ -55136,37 +55136,6 @@ Mesh:
offset: 0 offset: 0
size: 0 size: 0
path: path:
--- !u!1 &278618524
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 278618525}
m_Layer: 0
m_Name: GameManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &278618525
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 278618524}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!43 &280867632 --- !u!43 &280867632
Mesh: Mesh:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -169246,7 +169215,7 @@ PrefabInstance:
objectReference: {fileID: 1387674491} objectReference: {fileID: 1387674491}
- target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_VersionIndex propertyPath: m_VersionIndex
value: 1789 value: 1792
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
@ -281067,7 +281036,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1357420348} m_GameObject: {fileID: 1357420348}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5bae7a3fb14a3854ca6668491a8257b9, type: 3} m_Script: {fileID: 11500000, guid: efcd661891d8a6b48b0cae6b4b9b0d51, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
fadeCanvasGroup: {fileID: 536676154} fadeCanvasGroup: {fileID: 536676154}
@ -281075,8 +281044,11 @@ MonoBehaviour:
displayDuration: 3 displayDuration: 3
nextSceneName: House nextSceneName: House
audioSources: audioSources:
- {fileID: 205722625}
- {fileID: 1126005960} - {fileID: 1126005960}
- {fileID: 205722625}
audioLoop: {fileID: 1126005959}
storyPanelUI: {fileID: 0}
storyText: {fileID: 0}
--- !u!43 &1359399347 --- !u!43 &1359399347
Mesh: Mesh:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -471236,7 +471208,7 @@ PrefabInstance:
objectReference: {fileID: 441713353} objectReference: {fileID: 441713353}
- target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 124634771731201661, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_VersionIndex propertyPath: m_VersionIndex
value: 1792 value: 1795
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3} - target: {fileID: 5615680084984838417, guid: e9780caa44a72904897def65e3f50790, type: 3}
propertyPath: m_Mesh propertyPath: m_Mesh
@ -534648,7 +534620,6 @@ SceneRoots:
- {fileID: 1305339138} - {fileID: 1305339138}
- {fileID: 960695709} - {fileID: 960695709}
- {fileID: 108605771} - {fileID: 108605771}
- {fileID: 278618525}
- {fileID: 649665534} - {fileID: 649665534}
- {fileID: 563127885} - {fileID: 563127885}
- {fileID: 1390360348} - {fileID: 1390360348}

View file

@ -20,6 +20,10 @@ public class AudioLoop : MonoBehaviour
StartCoroutine(PlayPauseLoop()); StartCoroutine(PlayPauseLoop());
} }
public void StartAudioLoop()
{
StartCoroutine(PlayPauseLoop());
}
private IEnumerator PlayPauseLoop() private IEnumerator PlayPauseLoop()
{ {
while (true) while (true)

View file

@ -25,6 +25,7 @@ public class GameManager : MonoBehaviour
private bool bedroomCleaned = false; private bool bedroomCleaned = false;
private bool teethBrushed = false; private bool teethBrushed = false;
private bool floorSweeped = false; private bool floorSweeped = false;
private bool goToSchool = false;
// Queue for managing messages // Queue for managing messages
private Queue<string> messageQueue = new Queue<string>(); private Queue<string> messageQueue = new Queue<string>();
@ -37,6 +38,8 @@ public class GameManager : MonoBehaviour
public bool IsTeethBrushed() { return teethBrushed; } public bool IsTeethBrushed() { return teethBrushed; }
public bool IsFloorSweeped() { return floorSweeped; } public bool IsFloorSweeped() { return floorSweeped; }
public bool IsGoToSchool() { return goToSchool; }
/// <summary> /// <summary>
/// Enforces singleton behaviour; sets doesn't destroy on load and checks for multiple instances /// Enforces singleton behaviour; sets doesn't destroy on load and checks for multiple instances
/// </summary> /// </summary>
@ -96,6 +99,7 @@ public class GameManager : MonoBehaviour
Debug.Log("Bedroom Cleaned: " + bedroomCleaned); Debug.Log("Bedroom Cleaned: " + bedroomCleaned);
Debug.Log("Teeth Brushed: " + teethBrushed); Debug.Log("Teeth Brushed: " + teethBrushed);
Debug.Log("Floor Sweeped: " + floorSweeped); Debug.Log("Floor Sweeped: " + floorSweeped);
Debug.Log("Go To School: " + goToSchool);
} }
public void AreTasksDone() public void AreTasksDone()
@ -126,4 +130,9 @@ public class GameManager : MonoBehaviour
floorSweeped = true; floorSweeped = true;
AreTasksDone(); AreTasksDone();
} }
public void GoToSchoolTaskComplete()
{
goToSchool = true;
}
} }

View file

@ -0,0 +1,125 @@
/*
Author: Wai Lam
Date: 12/2/25
Description: Go to school
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.SceneManagement;
public class GoToSchool : MonoBehaviour
{
private GameManager gameManager;
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
public AudioSource[] audioSources;
private bool hasTriggered = false; // Prevent multiple triggers
public AudioLoop audioLoop;
// Defines UI references
[Header("UI References")]
public GameObject storyPanelUI;
public TMP_Text storyText;
void Start()
{
if (storyPanelUI == null)
storyPanelUI = GameObject.Find("Story Panel"); // Use the exact name
if (storyText == null)
storyText = FindObjectOfType<TMP_Text>(); // Finds the first TMP_Text in the scene
if (storyPanelUI != null)
storyPanelUI.SetActive(true);
if (storyText != null)
{
storyText.text = "I guess I should head to school now...";
StartCoroutine(ClearMessageAfterSeconds(7f));
}
if (audioLoop != null)
{
audioLoop.StartAudioLoop();
}
}
private IEnumerator ClearMessageAfterSeconds(float delay)
{
// Waits for delay to end and hides the UI
yield return new WaitForSeconds(delay);
storyText.text = "";
}
private void OnTriggerEnter(Collider other)
{
// Check if the player entered the trigger
if (!hasTriggered && other.CompareTag("Player"))
{
hasTriggered = true;
StartCoroutine(FadeInAndLoadScene());
GameManager.Instance.GoToSchoolTaskComplete();
}
}
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;
float[] startVolumes = new float[audioSources.Length];
for (int i = 0; i < audioSources.Length; i++)
{
startVolumes[i] = audioSources[i] != null ? audioSources[i].volume : 1f;
}
while (elapsed < duration)
{
elapsed += Time.deltaTime;
float t = elapsed / duration;
fadeCanvasGroup.alpha = Mathf.Lerp(startAlpha, endAlpha, t);
for (int i = 0; i < audioSources.Length; i++)
{
if (audioSources[i] != null)
{
audioSources[i].volume = Mathf.Lerp(startVolumes[i], 0f, t);
}
}
yield return null;
}
fadeCanvasGroup.alpha = endAlpha;
for (int i = 0; i < audioSources.Length; i++)
{
if (audioSources[i] != null)
{
audioSources[i].volume = 0f;
}
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: efcd661891d8a6b48b0cae6b4b9b0d51
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: