From 3f64f82464d012f4c0d5a0859b63b24f6d38ac4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C5=A0vec?= Date: Tue, 20 Aug 2024 18:47:34 +0200 Subject: [PATCH] Add lobby and scene managers, implement scene switching with fade in/out --- .../EmeraldAI_v3.unitypackage.meta | 7 ++ .../FinalIK_Integration.unitypackage.meta | 7 ++ .../HexaBodyVR_Integration.unitypackage.meta | 7 ++ .../OculusIntegration.unitypackage.meta | 7 ++ .../SteamVRIntegration.unitypackage.meta | 7 ++ Assets/Oculus/OculusProjectConfig.asset | 4 +- ...tom Attribute Processors.unitypackage.meta | 7 ++ .../Demos/Custom Drawers.unitypackage.meta | 7 ++ .../Demos/Editor Windows.unitypackage.meta | 7 ++ .../Sample - RPG Editor.unitypackage.meta | 7 ++ .../Zenject-ReflectionBaking.csproj.meta | 7 ++ .../Signals/Zenject-Signals.csproj.meta | 7 ++ .../Zenject/Source/Zenject.csproj.meta | 7 ++ Assets/Prefabs/Player.prefab | 10 +++ Assets/Prefabs/SceneManager.prefab | 47 ++++++++++++++ Assets/Prefabs/SceneManager.prefab.meta | 7 ++ Assets/Resources/Managers/LobbyManager.prefab | 48 ++++++++++++++ .../Managers/LobbyManager.prefab.meta | 7 ++ Assets/Resources/ProjectContext.prefab | 2 + Assets/Scenes/Lobby.unity | 16 ++++- Assets/Scripts/Installers/GlobalInstaller.cs | 19 +++++- Assets/Scripts/Installers/LobbyInstaller.cs | 25 ++++---- Assets/Scripts/Managers/LobbyManager.cs | 21 ++++++ Assets/Scripts/Managers/LobbyManager.cs.meta | 11 ++++ Assets/Scripts/Managers/SceneManager.cs | 60 ++++++++++++++++++ Assets/Scripts/Managers/SceneManager.cs.meta | 11 ++++ ...rtex Studio (21).mp3 => lobby music 1.mp3} | Bin ...o (21).mp3.meta => lobby music 1.mp3.meta} | 0 28 files changed, 353 insertions(+), 19 deletions(-) create mode 100644 Assets/HurricaneVR/Framework/Integrations/EmeraldAI_v3.unitypackage.meta create mode 100644 Assets/HurricaneVR/Framework/Integrations/FinalIK_Integration.unitypackage.meta create mode 100644 Assets/HurricaneVR/Framework/Integrations/HexaBodyVR_Integration.unitypackage.meta create mode 100644 Assets/HurricaneVR/Framework/Integrations/OculusIntegration.unitypackage.meta create mode 100644 Assets/HurricaneVR/Framework/Integrations/SteamVRIntegration.unitypackage.meta create mode 100644 Assets/Plugins/Sirenix/Demos/Custom Attribute Processors.unitypackage.meta create mode 100644 Assets/Plugins/Sirenix/Demos/Custom Drawers.unitypackage.meta create mode 100644 Assets/Plugins/Sirenix/Demos/Editor Windows.unitypackage.meta create mode 100644 Assets/Plugins/Sirenix/Demos/Sample - RPG Editor.unitypackage.meta create mode 100644 Assets/Plugins/Zenject/OptionalExtras/ReflectionBaking/Zenject-ReflectionBaking.csproj.meta create mode 100644 Assets/Plugins/Zenject/OptionalExtras/Signals/Zenject-Signals.csproj.meta create mode 100644 Assets/Plugins/Zenject/Source/Zenject.csproj.meta create mode 100644 Assets/Prefabs/SceneManager.prefab create mode 100644 Assets/Prefabs/SceneManager.prefab.meta create mode 100644 Assets/Resources/Managers/LobbyManager.prefab create mode 100644 Assets/Resources/Managers/LobbyManager.prefab.meta create mode 100644 Assets/Scripts/Managers/LobbyManager.cs create mode 100644 Assets/Scripts/Managers/LobbyManager.cs.meta create mode 100644 Assets/Scripts/Managers/SceneManager.cs create mode 100644 Assets/Scripts/Managers/SceneManager.cs.meta rename Assets/ThirdParty/Game_music/{With love from Vertex Studio (21).mp3 => lobby music 1.mp3} (100%) rename Assets/ThirdParty/Game_music/{With love from Vertex Studio (21).mp3.meta => lobby music 1.mp3.meta} (100%) diff --git a/Assets/HurricaneVR/Framework/Integrations/EmeraldAI_v3.unitypackage.meta b/Assets/HurricaneVR/Framework/Integrations/EmeraldAI_v3.unitypackage.meta new file mode 100644 index 00000000..4062a6a1 --- /dev/null +++ b/Assets/HurricaneVR/Framework/Integrations/EmeraldAI_v3.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 464b3c5ba97aca44ab958c34d08ea3d5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HurricaneVR/Framework/Integrations/FinalIK_Integration.unitypackage.meta b/Assets/HurricaneVR/Framework/Integrations/FinalIK_Integration.unitypackage.meta new file mode 100644 index 00000000..3a8c7fd9 --- /dev/null +++ b/Assets/HurricaneVR/Framework/Integrations/FinalIK_Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2a39b3c0d6d9bbe46a4816fd62320f4b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HurricaneVR/Framework/Integrations/HexaBodyVR_Integration.unitypackage.meta b/Assets/HurricaneVR/Framework/Integrations/HexaBodyVR_Integration.unitypackage.meta new file mode 100644 index 00000000..8816f9fb --- /dev/null +++ b/Assets/HurricaneVR/Framework/Integrations/HexaBodyVR_Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 31c90a1529188b947854cd14e13aef5a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HurricaneVR/Framework/Integrations/OculusIntegration.unitypackage.meta b/Assets/HurricaneVR/Framework/Integrations/OculusIntegration.unitypackage.meta new file mode 100644 index 00000000..d51cb357 --- /dev/null +++ b/Assets/HurricaneVR/Framework/Integrations/OculusIntegration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 19be22f6bb3775a478ef0c441b6c3a20 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HurricaneVR/Framework/Integrations/SteamVRIntegration.unitypackage.meta b/Assets/HurricaneVR/Framework/Integrations/SteamVRIntegration.unitypackage.meta new file mode 100644 index 00000000..d3ee020a --- /dev/null +++ b/Assets/HurricaneVR/Framework/Integrations/SteamVRIntegration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 669e8154ef4d9b64787f2974409f606c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/OculusProjectConfig.asset b/Assets/Oculus/OculusProjectConfig.asset index 11b9e925..fb54c829 100644 --- a/Assets/Oculus/OculusProjectConfig.asset +++ b/Assets/Oculus/OculusProjectConfig.asset @@ -41,5 +41,5 @@ MonoBehaviour: systemSplashScreen: {fileID: 0} systemSplashScreenType: 0 _systemLoadingScreenBackground: 0 - ovrPluginMd5Win64: aa662cdf2f901973cc80422bf87a766d1bbe7d8a73b1be1e622af9e4457d65e2 - ovrPluginMd5Android: b191da349d7c05c640e5f41721d8abdfa2a3f8d400e1e1d353e3c5d59202932c + ovrPluginMd5Win64: aa662cdf2f901973cc80422bf87a766d438fe4f2245bacd864e9180e0a41d7ca + ovrPluginMd5Android: b191da349d7c05c640e5f41721d8abdfa7931b9213e8e481fc0316f7eef4ffc9 diff --git a/Assets/Plugins/Sirenix/Demos/Custom Attribute Processors.unitypackage.meta b/Assets/Plugins/Sirenix/Demos/Custom Attribute Processors.unitypackage.meta new file mode 100644 index 00000000..1eadf09a --- /dev/null +++ b/Assets/Plugins/Sirenix/Demos/Custom Attribute Processors.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f597f19f656ba56eae4f6a3a7cc528f4 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Sirenix/Demos/Custom Drawers.unitypackage.meta b/Assets/Plugins/Sirenix/Demos/Custom Drawers.unitypackage.meta new file mode 100644 index 00000000..f073d2ab --- /dev/null +++ b/Assets/Plugins/Sirenix/Demos/Custom Drawers.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 48e08dc33330d11e9d4a1b246c52e4f6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Sirenix/Demos/Editor Windows.unitypackage.meta b/Assets/Plugins/Sirenix/Demos/Editor Windows.unitypackage.meta new file mode 100644 index 00000000..130722af --- /dev/null +++ b/Assets/Plugins/Sirenix/Demos/Editor Windows.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ed09910c0094cb27be8f3ca264680da3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Sirenix/Demos/Sample - RPG Editor.unitypackage.meta b/Assets/Plugins/Sirenix/Demos/Sample - RPG Editor.unitypackage.meta new file mode 100644 index 00000000..f9b8ed82 --- /dev/null +++ b/Assets/Plugins/Sirenix/Demos/Sample - RPG Editor.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc355dd4cf1e6173beaeb22c2858cbe1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Zenject/OptionalExtras/ReflectionBaking/Zenject-ReflectionBaking.csproj.meta b/Assets/Plugins/Zenject/OptionalExtras/ReflectionBaking/Zenject-ReflectionBaking.csproj.meta new file mode 100644 index 00000000..172ff927 --- /dev/null +++ b/Assets/Plugins/Zenject/OptionalExtras/ReflectionBaking/Zenject-ReflectionBaking.csproj.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 91b0b4c77fdd1d24aa1af646e9d29960 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Zenject/OptionalExtras/Signals/Zenject-Signals.csproj.meta b/Assets/Plugins/Zenject/OptionalExtras/Signals/Zenject-Signals.csproj.meta new file mode 100644 index 00000000..4ec12701 --- /dev/null +++ b/Assets/Plugins/Zenject/OptionalExtras/Signals/Zenject-Signals.csproj.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aebd7ef925dd4fe4690c3238e879f914 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Zenject/Source/Zenject.csproj.meta b/Assets/Plugins/Zenject/Source/Zenject.csproj.meta new file mode 100644 index 00000000..774fd7a0 --- /dev/null +++ b/Assets/Plugins/Zenject/Source/Zenject.csproj.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8645273165cb7f54290d6eaa1e10ab37 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index 11695f87..64c3dc08 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -13,6 +13,11 @@ PrefabInstance: propertyPath: RaycastLayermask.m_Bits value: 1048577 objectReference: {fileID: 0} + - target: {fileID: 885885627402359450, guid: 6974999791dc8804fafee05e319aa932, + type: 3} + propertyPath: m_PresetInfoIsWorld + value: 1 + objectReference: {fileID: 0} - target: {fileID: 3485174680740724534, guid: 6974999791dc8804fafee05e319aa932, type: 3} propertyPath: SocketContainer @@ -78,6 +83,11 @@ PrefabInstance: propertyPath: TeleportableLayers.m_Bits value: 1049143 objectReference: {fileID: 0} + - target: {fileID: 5601958842363464469, guid: 6974999791dc8804fafee05e319aa932, + type: 3} + propertyPath: m_PresetInfoIsWorld + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6805818130727380499, guid: 6974999791dc8804fafee05e319aa932, type: 3} propertyPath: m_IsActive diff --git a/Assets/Prefabs/SceneManager.prefab b/Assets/Prefabs/SceneManager.prefab new file mode 100644 index 00000000..c5d113ae --- /dev/null +++ b/Assets/Prefabs/SceneManager.prefab @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &9083120132262756458 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6622870952284305087} + - component: {fileID: 4322271132041590388} + m_Layer: 0 + m_Name: SceneManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6622870952284305087 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9083120132262756458} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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!114 &4322271132041590388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9083120132262756458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 324a182340742c54cbdb3967f1916e29, type: 3} + m_Name: + m_EditorClassIdentifier: + playerController: {fileID: 0} diff --git a/Assets/Prefabs/SceneManager.prefab.meta b/Assets/Prefabs/SceneManager.prefab.meta new file mode 100644 index 00000000..ae9100a4 --- /dev/null +++ b/Assets/Prefabs/SceneManager.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 195c448c3b94b5f47a2aa13187a0bc99 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Managers/LobbyManager.prefab b/Assets/Resources/Managers/LobbyManager.prefab new file mode 100644 index 00000000..bf2a7ff6 --- /dev/null +++ b/Assets/Resources/Managers/LobbyManager.prefab @@ -0,0 +1,48 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5030030548773179242 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 16652901659177099} + - component: {fileID: 8662502360844444211} + m_Layer: 0 + m_Name: LobbyManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &16652901659177099 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5030030548773179242} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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!114 &8662502360844444211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5030030548773179242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8b4a0794fa1d6c44adcec647be166a6, type: 3} + m_Name: + m_EditorClassIdentifier: + musicManager: {fileID: 0} + backgroundMusicClip: {fileID: 8300000, guid: 30dd1c9e0f80b8c41a66e325c4f6884f, type: 3} diff --git a/Assets/Resources/Managers/LobbyManager.prefab.meta b/Assets/Resources/Managers/LobbyManager.prefab.meta new file mode 100644 index 00000000..e29e3e79 --- /dev/null +++ b/Assets/Resources/Managers/LobbyManager.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 81d211fb3f60c2644a664537a51bda29 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/ProjectContext.prefab b/Assets/Resources/ProjectContext.prefab index e2d2fa94..b96e9518 100644 --- a/Assets/Resources/ProjectContext.prefab +++ b/Assets/Resources/ProjectContext.prefab @@ -80,3 +80,5 @@ MonoBehaviour: type: 3} playerPrefab: {fileID: 75161255762383020, guid: 1ef3259331ddc1f4d94b628323ec45f3, type: 3} + sceneManagerPrefab: {fileID: 9083120132262756458, guid: 195c448c3b94b5f47a2aa13187a0bc99, + type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index f19966f0..5d25af1c 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -8206,6 +8206,7 @@ GameObject: m_Component: - component: {fileID: 669203337} - component: {fileID: 669203336} + - component: {fileID: 669203338} m_Layer: 0 m_Name: SceneContext m_TagString: Untagged @@ -8226,7 +8227,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _scriptableObjectInstallers: [] - _monoInstallers: [] + _monoInstallers: + - {fileID: 669203338} _installerPrefabs: [] _autoRun: 1 OnPreInstall: @@ -8259,6 +8261,18 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &669203338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669203335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a37c700de6d3a4a4385fcc8bcd15405f, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &673324911 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Installers/GlobalInstaller.cs b/Assets/Scripts/Installers/GlobalInstaller.cs index 8338f583..ccf54fcf 100644 --- a/Assets/Scripts/Installers/GlobalInstaller.cs +++ b/Assets/Scripts/Installers/GlobalInstaller.cs @@ -1,4 +1,5 @@ using HurricaneVR.Framework.Core; +using HurricaneVR.Framework.Core.Player; using HurricaneVR.Framework.Core.Utils; using UnityEngine; using Zenject; @@ -16,6 +17,9 @@ public class GlobalInstaller : MonoInstaller [SerializeField] private GameObject playerPrefab; + [SerializeField] + private GameObject sceneManagerPrefab; + public override void Start() { base.Start(); @@ -42,12 +46,21 @@ public class GlobalInstaller : MonoInstaller }) .NonLazy(); - Container.Bind() + Container.Bind() .FromComponentInNewPrefab(playerPrefab) .AsSingle() - .OnInstantiated((ctx, obj) => + .OnInstantiated((ctx, obj) => { - obj.name = playerPrefab.name; + obj.transform.parent.name = playerPrefab.name; + }) + .NonLazy(); + + Container.Bind() + .FromComponentInNewPrefab(sceneManagerPrefab) + .AsSingle() + .OnInstantiated((ctx, obj) => + { + obj.name = sceneManagerPrefab.name; }) .NonLazy(); } diff --git a/Assets/Scripts/Installers/LobbyInstaller.cs b/Assets/Scripts/Installers/LobbyInstaller.cs index 978bfecb..e2f541fb 100644 --- a/Assets/Scripts/Installers/LobbyInstaller.cs +++ b/Assets/Scripts/Installers/LobbyInstaller.cs @@ -1,18 +1,17 @@ -using System.Collections; -using System.Collections.Generic; using UnityEngine; +using Zenject; -public class LobbyInstaller : MonoBehaviour +public class LobbyInstaller : MonoInstaller { - // Start is called before the first frame update - void Start() + public override void InstallBindings() { - + Container.Bind() + .FromComponentsInNewPrefabResource("Managers/LobbyManager") + .AsSingle() + .OnInstantiated((ctx, obj) => + { + obj.name = "LobbyManager"; + }) + .NonLazy(); } - - // Update is called once per frame - void Update() - { - - } -} +} \ No newline at end of file diff --git a/Assets/Scripts/Managers/LobbyManager.cs b/Assets/Scripts/Managers/LobbyManager.cs new file mode 100644 index 00000000..7eb630c4 --- /dev/null +++ b/Assets/Scripts/Managers/LobbyManager.cs @@ -0,0 +1,21 @@ +using Sirenix.OdinInspector; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Zenject; + +public class LobbyManager : MonoBehaviour +{ + [Inject] + [SerializeField] + [ReadOnly] + private MusicManager musicManager; + + [SerializeField] + private AudioClip backgroundMusicClip; + + private void Start() + { + musicManager.Play(backgroundMusicClip); + } +} diff --git a/Assets/Scripts/Managers/LobbyManager.cs.meta b/Assets/Scripts/Managers/LobbyManager.cs.meta new file mode 100644 index 00000000..f7076548 --- /dev/null +++ b/Assets/Scripts/Managers/LobbyManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8b4a0794fa1d6c44adcec647be166a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Managers/SceneManager.cs b/Assets/Scripts/Managers/SceneManager.cs new file mode 100644 index 00000000..6674f9eb --- /dev/null +++ b/Assets/Scripts/Managers/SceneManager.cs @@ -0,0 +1,60 @@ +using HurricaneVR.Framework.Core.Player; +using Sirenix.OdinInspector; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.SceneManagement; +using Zenject; + +public class SceneManager : MonoBehaviour +{ + enum Scene + { + Lobby = 0, + Entrance = 1, + Forge = 2 + } + + [Inject] + [ReadOnly] + [SerializeField] + private HVRPlayerController playerController; + + [ReadOnly] + [SerializeField] + private float fadeDuration = 2f; + + [ReadOnly] + [SerializeField] + private Scene scene; + + [Button] + public void SwitchToEntranceLevel() + { + StartCoroutine(SwitchToScene(Scene.Entrance)); + } + + private IEnumerator SwitchToScene(Scene scene) + { + playerController.ScreenFader.Fade(1, fadeDuration); + + var operation = UnityEngine.SceneManagement.SceneManager + .LoadSceneAsync((int)scene); + + operation.allowSceneActivation = false; + + float timer = 0; + + while (timer <= fadeDuration && !operation.isDone) + { + timer += Time.deltaTime; + yield return null; + } + + operation.allowSceneActivation = true; + + this.scene = scene; + + playerController.ScreenFader.Fade(0, fadeDuration); + } +} diff --git a/Assets/Scripts/Managers/SceneManager.cs.meta b/Assets/Scripts/Managers/SceneManager.cs.meta new file mode 100644 index 00000000..12c7cfaa --- /dev/null +++ b/Assets/Scripts/Managers/SceneManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 324a182340742c54cbdb3967f1916e29 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThirdParty/Game_music/With love from Vertex Studio (21).mp3 b/Assets/ThirdParty/Game_music/lobby music 1.mp3 similarity index 100% rename from Assets/ThirdParty/Game_music/With love from Vertex Studio (21).mp3 rename to Assets/ThirdParty/Game_music/lobby music 1.mp3 diff --git a/Assets/ThirdParty/Game_music/With love from Vertex Studio (21).mp3.meta b/Assets/ThirdParty/Game_music/lobby music 1.mp3.meta similarity index 100% rename from Assets/ThirdParty/Game_music/With love from Vertex Studio (21).mp3.meta rename to Assets/ThirdParty/Game_music/lobby music 1.mp3.meta