From fa3eebba97862af1e4b7dd3bce6a6f20a3389278 Mon Sep 17 00:00:00 2001 From: Mark Joshwel Date: Sun, 11 Aug 2024 07:20:11 +0800 Subject: [PATCH] game(many): upd playg, interim scripts, interfaces tag --- .../Scenes/Playgrounds/Playground.unity | 198 ++++++++++++++++++ .../Assets/Scripts/CommonInteractable.cs | 11 +- RunningLateGame/Assets/Scripts/CommonMenu.cs | 20 +- RunningLateGame/Assets/Scripts/GameManager.cs | 36 +--- RunningLateGame/Assets/Scripts/Player.cs | 7 +- .../ProjectSettings/TagManager.asset | 2 +- 6 files changed, 222 insertions(+), 52 deletions(-) diff --git a/RunningLateGame/Assets/Scenes/Playgrounds/Playground.unity b/RunningLateGame/Assets/Scenes/Playgrounds/Playground.unity index 1769e27..af5e739 100644 --- a/RunningLateGame/Assets/Scenes/Playgrounds/Playground.unity +++ b/RunningLateGame/Assets/Scenes/Playgrounds/Playground.unity @@ -185,6 +185,26 @@ PrefabInstance: propertyPath: m_TagString value: Player objectReference: {fileID: 0} + - target: {fileID: 5542111180780342640, guid: c708a3b79cd542b42bbfedb17e213bc1, + type: 3} + propertyPath: m_BackGroundColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5542111180780342640, guid: c708a3b79cd542b42bbfedb17e213bc1, + type: 3} + propertyPath: m_BackGroundColor.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5542111180780342640, guid: c708a3b79cd542b42bbfedb17e213bc1, + type: 3} + propertyPath: m_BackGroundColor.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5542111180780342640, guid: c708a3b79cd542b42bbfedb17e213bc1, + type: 3} + propertyPath: m_BackGroundColor.r + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8047161636021232021, guid: c708a3b79cd542b42bbfedb17e213bc1, type: 3} propertyPath: m_Name @@ -7605,6 +7625,55 @@ MonoBehaviour: linkedLeapTrigger1: {fileID: 1785766166} linkedLeapTrigger2: {fileID: 0} linkedLeapTrigger3: {fileID: 0} +--- !u!1 &618797798 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 618797800} + - component: {fileID: 618797799} + m_Layer: 5 + m_Name: Interaction Prompt Overlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &618797799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 618797798} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: 21896e34ffd76694aa03bd08a51762a9, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: 5ecae982f651ff6438bbaa95ba0362e1, + type: 3} + m_SortingOrder: 0 +--- !u!4 &618797800 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 618797798} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 16.463919, y: -4.84284, z: 19.970129} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1798850120} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!43 &691061213 Mesh: m_ObjectHideFlags: 0 @@ -7770,6 +7839,56 @@ Mesh: offset: 0 size: 0 path: +--- !u!1 &917153437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 917153439} + - component: {fileID: 917153438} + m_Layer: 0 + m_Name: Audio Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &917153438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917153437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 723a7675db014cb3aca02f49d069e931, type: 3} + m_Name: + m_EditorClassIdentifier: + musicSource: {fileID: 0} + musicSourceDefaultVolume: 0.6 + sfxSource: {fileID: 0} + sfxSourceDefaultVolume: 0.6 + menuButtonClick: {fileID: 0} + menuButtonHover: {fileID: 0} +--- !u!4 &917153439 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917153437} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -16.463919, y: 4.84284, z: -19.970129} + 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!1 &1006498776 GameObject: m_ObjectHideFlags: 0 @@ -11029,6 +11148,50 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1.5532818, y: 0.5110284, z: 1.2993164} m_Center: {x: 0.77663994, y: 0.21773233, z: 0.6496582} +--- !u!1 &1766444913 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1766444915} + - component: {fileID: 1766444914} + m_Layer: 0 + m_Name: Game Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1766444914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1766444913} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9f6e55d96ef14d65979aabb99a0d5f1a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1766444915 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1766444913} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -16.463919, y: 4.84284, z: -19.970129} + 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!1 &1785766159 GameObject: m_ObjectHideFlags: 0 @@ -11396,6 +11559,38 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: isPlayerInAir: 0 +--- !u!1 &1798850119 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1798850120} + m_Layer: 0 + m_Name: Interfaces + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1798850120 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1798850119} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -16.463919, y: 4.84284, z: -19.970129} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 618797800} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1805235905 GameObject: m_ObjectHideFlags: 0 @@ -12099,6 +12294,9 @@ Mesh: SceneRoots: m_ObjectHideFlags: 0 m_Roots: + - {fileID: 1766444915} + - {fileID: 917153439} + - {fileID: 1798850120} - {fileID: 567431775} - {fileID: 1656492132} - {fileID: 1120089} diff --git a/RunningLateGame/Assets/Scripts/CommonInteractable.cs b/RunningLateGame/Assets/Scripts/CommonInteractable.cs index 326db69..7f0951d 100644 --- a/RunningLateGame/Assets/Scripts/CommonInteractable.cs +++ b/RunningLateGame/Assets/Scripts/CommonInteractable.cs @@ -1,5 +1,5 @@ /* - * authors: ryan lin, mark joshwel + * authors: mark joshwel, ryan lin * date: 10/8/2024 * description: common interactable behaviour class */ @@ -7,12 +7,17 @@ using UnityEngine; /// -/// TODO +/// base behaviour class for interactable objects /// public class CommonInteractable : MonoBehaviour { /// - /// TODO + /// the prompt to display when the player is looking at the object + /// + public string interactionPrompt = ""; + + /// + /// skeleton function for interacting with the object /// public virtual void Interact() { diff --git a/RunningLateGame/Assets/Scripts/CommonMenu.cs b/RunningLateGame/Assets/Scripts/CommonMenu.cs index 80d8be3..bdf70e0 100644 --- a/RunningLateGame/Assets/Scripts/CommonMenu.cs +++ b/RunningLateGame/Assets/Scripts/CommonMenu.cs @@ -21,11 +21,6 @@ public class CommonMenu : MonoBehaviour /// public GameManager.DisplayState associatedState = GameManager.DisplayState.UnassociatedState; - /// - /// manager for audio - /// - protected AudioManager Audio; - /// /// manager for the game state /// @@ -47,9 +42,6 @@ private void Start() if (Game == null) throw new Exception("CommonMenu: Game not set (was base.OnEnable() or PostEnable() called?)"); - - if (Audio == null) - throw new Exception("CommonMenu: Audio not set (was base.OnEnable() or PostEnable() called?)"); } /// @@ -68,10 +60,10 @@ public void PostEnable() { // get audio manager singleton instance from the world UI = GetComponent().rootVisualElement; - Audio = AudioManager.Instance; + // Audio = AudioManager.Instance; Game = GameManager.Instance; - // subscribe to hover events + // // subscribe to hover events UI.RegisterCallback(HoverListener); } @@ -104,8 +96,8 @@ public virtual void ClickListener(ClickEvent evt) /// public virtual void PlayClick() { - // play click sound - Audio.PlayOnSFXChannel(Audio.menuButtonClick); + // TODO: play click sound + // Game.PlayOnSFXChannel(Audio.menuButtonClick); } /// @@ -113,7 +105,7 @@ public virtual void PlayClick() /// public virtual void PlayHover() { - // play hover sound - Audio.PlayOnSFXChannel(Audio.menuButtonHover); + // TODO: play hover sound + // Game.PlayOnSFXChannel(Audio.menuButtonHover); } } \ No newline at end of file diff --git a/RunningLateGame/Assets/Scripts/GameManager.cs b/RunningLateGame/Assets/Scripts/GameManager.cs index 2728526..f586248 100644 --- a/RunningLateGame/Assets/Scripts/GameManager.cs +++ b/RunningLateGame/Assets/Scripts/GameManager.cs @@ -5,7 +5,6 @@ */ using UnityEngine; -using UnityEngine.SceneManagement; /// /// singleton class for managing the game state as a single source of truth @@ -18,11 +17,11 @@ public class GameManager : MonoBehaviour public enum DisplayState { Game, - ScreenMainMenu, - ScreenOptionsMenu, - OverlayPauseMenu, - OverlayCompleteUnderTimeMenu, - OverlayFailedOverTimeMenu, + ScreenMainMenu, // done + ScreenOptionsMenu, // done + OverlayPauseMenu, // TODO + OverlayCompleteUnderTimeMenu, // TODO + OverlayFailedOverTimeMenu, // TODO UnassociatedState } @@ -39,19 +38,8 @@ public enum DisplayState /// /// property to check if the game is paused based on the current DisplayState /// - // TODO: remove this if not needed public bool Paused => _state != DisplayState.Game; - // /// - // /// the current scene of the game, used for scene switching and state transitions - // /// - // private Scene _currentScene; - // - // /// - // /// the previous scene of the game, used for scene switching and state transitions - // /// - // private Scene _previousScene; - /// /// function to set doesn't destroy on load and checks for multiple instances /// @@ -84,13 +72,6 @@ private void Awake() private void Start() { SetDisplayState(DisplayState.ScreenMainMenu); - - // _currentScene = SceneManager.GetSceneByName("S2 World"); - // _previousScene = _currentScene; - // if (_currentScene == null) - // { - // throw new Exception("GameManager.Start: current scene is null"); - // } } /// @@ -99,7 +80,7 @@ private void Start() private void HideMenuHelper() { // get all child menus in the "Menus" parent object - foreach (var menu in GameObject.FindGameObjectsWithTag("Menus")) + foreach (var menu in GameObject.FindGameObjectsWithTag("Interfaces")) foreach (Transform menuChild in menu.transform) { // disable the menu if it's currently active @@ -146,7 +127,7 @@ private void PauseGameHelper(DisplayState incomingState) HideMenuHelper(); // get all child menus in the "Menus" parent object - foreach (var menuParent in GameObject.FindGameObjectsWithTag("Menus")) + foreach (var menuParent in GameObject.FindGameObjectsWithTag("Interfaces")) foreach (Transform menu in menuParent.transform) { // show the menu based on the incoming state @@ -201,9 +182,6 @@ private void ResumeGameHelper(DisplayState incomingState) /// the game menu to show public void SetDisplayState(DisplayState displayState) { - // boolean check if we're transitioning to the same state - var transitioning = _state == displayState; - // check if the game is paused or not if (displayState is DisplayState.Game or DisplayState.UnassociatedState) { diff --git a/RunningLateGame/Assets/Scripts/Player.cs b/RunningLateGame/Assets/Scripts/Player.cs index 46a5493..02e72e4 100644 --- a/RunningLateGame/Assets/Scripts/Player.cs +++ b/RunningLateGame/Assets/Scripts/Player.cs @@ -71,15 +71,12 @@ private void Update() playerPosition.TransformDirection(Vector3.forward) * interactableDistance, Color.green ); - + if (!_raycast) return; // show an interaction prompt if we're looking at an interactable object var prompt = Hit.collider.GetComponent()?.interactionPrompt; - if (prompt != "") - { - Debug.Log(prompt); - } + if (prompt != "") Debug.Log(prompt); } /// diff --git a/RunningLateGame/ProjectSettings/TagManager.asset b/RunningLateGame/ProjectSettings/TagManager.asset index 38861f3..3818b8a 100644 --- a/RunningLateGame/ProjectSettings/TagManager.asset +++ b/RunningLateGame/ProjectSettings/TagManager.asset @@ -7,7 +7,7 @@ TagManager: - CinemachineTarget - Interactable - AIs - - Menus + - Interfaces layers: - Default - TransparentFX