From 2ec53629c6084c5a5ea67e2e9a880673a81bfac8 Mon Sep 17 00:00:00 2001 From: journaliciouz Date: Sat, 8 Nov 2025 21:08:01 +0100 Subject: [PATCH] Added contextual UI switching depending on level type --- Assets/Prefabs/Managers/PlayerHUD.prefab | 13 +++++ Assets/Scripts/UI/PlayerHudManager.cs | 70 ++++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/Assets/Prefabs/Managers/PlayerHUD.prefab b/Assets/Prefabs/Managers/PlayerHUD.prefab index e28267bf..c80e8051 100644 --- a/Assets/Prefabs/Managers/PlayerHUD.prefab +++ b/Assets/Prefabs/Managers/PlayerHUD.prefab @@ -670,10 +670,13 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f97ef53b4012e4149b61bbd63c298b6f, type: 3} m_Name: m_EditorClassIdentifier: '::' + currentUIMode: 0 landscapeObject: {fileID: 7681264016039674288} portraitObject: {fileID: 2258532551510216878} cinematicsParentObject: {fileID: 5598823553633962789} CinematicBackground: {fileID: 1256355336041814197} + appSwitcher: {fileID: 3087409191859087859} + eagleEye: {fileID: 8093509920149135307} cinematicSprites: {fileID: 0} cinematicBackgroundSprites: {fileID: 0} currentCinematicPlayer: {fileID: 0} @@ -1058,6 +1061,11 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 5445689290567702089, guid: 428a0feafda9d6d4e87ecf43ad41dc20, type: 3} m_PrefabInstance: {fileID: 1192924796845315568} m_PrefabAsset: {fileID: 0} +--- !u!1 &8093509920149135307 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6980564769726958139, guid: 428a0feafda9d6d4e87ecf43ad41dc20, type: 3} + m_PrefabInstance: {fileID: 1192924796845315568} + m_PrefabAsset: {fileID: 0} --- !u!1001 &4473383355500896076 PrefabInstance: m_ObjectHideFlags: 0 @@ -1186,6 +1194,11 @@ PrefabInstance: insertIndex: -1 addedObject: {fileID: 1247411094983283289} m_SourcePrefab: {fileID: 100100000, guid: ccd858c7962d48147b0233c1bf1382f5, type: 3} +--- !u!1 &3087409191859087859 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1498581815400593087, guid: ccd858c7962d48147b0233c1bf1382f5, type: 3} + m_PrefabInstance: {fileID: 4473383355500896076} + m_PrefabAsset: {fileID: 0} --- !u!224 &3194400469127591113 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 1315170081792486277, guid: ccd858c7962d48147b0233c1bf1382f5, type: 3} diff --git a/Assets/Scripts/UI/PlayerHudManager.cs b/Assets/Scripts/UI/PlayerHudManager.cs index 31e2809b..28658c61 100644 --- a/Assets/Scripts/UI/PlayerHudManager.cs +++ b/Assets/Scripts/UI/PlayerHudManager.cs @@ -9,11 +9,17 @@ using Core.Lifecycle; public class PlayerHudManager : ManagedBehaviour { + public enum UIMode { Overworld, Puzzle, Minigame, HideAll }; + + public UIMode currentUIMode; private AppSwitcher _appSwitcher; public GameObject landscapeObject; public GameObject portraitObject; public GameObject cinematicsParentObject; public GameObject CinematicBackground; + public GameObject appSwitcher; + public GameObject eagleEye; + [HideInInspector] public Image cinematicSprites; [HideInInspector] public Image cinematicBackgroundSprites; @@ -30,6 +36,7 @@ public class PlayerHudManager : ManagedBehaviour public static PlayerHudManager Instance => _instance; private new void Awake() { + base.Awake(); if (Instance != null) { Destroy(this); @@ -39,6 +46,26 @@ public class PlayerHudManager : ManagedBehaviour _instance = this; InitializeReferences(); + + + } + + protected override void OnManagedAwake() + { + if (SceneManagerService.Instance != null) + { + SceneManagerService.Instance.SceneLoadCompleted += NewSceneLoaded; + } + if (SceneManagerService.Instance.CurrentGameplayScene == "AppleHillsOverworld") + { + NewSceneLoaded("AppleHillsOverworld"); + } + if (SceneManagerService.Instance.CurrentGameplayScene == "StartingScene") + { + // TODO: Hide all UI until cinematics have played + NewSceneLoaded("AppleHillsOverworld"); + } + } private void InitializeReferences() @@ -67,4 +94,47 @@ public class PlayerHudManager : ManagedBehaviour UpateCinematicReferences(landscapeObject); } } + + public void NewSceneLoaded(string sceneName) + { + switch (sceneName) + { + case "AppleHillsOverworld": + UpdateUIMode(UIMode.Overworld); + break; + case "Quarry": + UpdateUIMode(UIMode.Puzzle); + break; + case "DivingForPictures": + UpdateUIMode(UIMode.Minigame); + break; + + } + + } + + public void UpdateUIMode(UIMode mode) + { + switch (mode) + { + case UIMode.Overworld: + // Show app switcher + appSwitcher.SetActive(true); + // Hide eagle eye + eagleEye.SetActive(false); + break; + case UIMode.Puzzle: + // Hide app switcher + appSwitcher.SetActive(false); + // show eagle eye + eagleEye.SetActive(true); + break; + case UIMode.Minigame: + // Hide app switcher + appSwitcher.SetActive(false); + // Hide birds eye + eagleEye.SetActive(false); + break; + } + } }