Add lobby and scene managers, implement scene switching with fade in/out
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 464b3c5ba97aca44ab958c34d08ea3d5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a39b3c0d6d9bbe46a4816fd62320f4b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31c90a1529188b947854cd14e13aef5a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 19be22f6bb3775a478ef0c441b6c3a20
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 669e8154ef4d9b64787f2974409f606c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -41,5 +41,5 @@ MonoBehaviour:
|
||||
systemSplashScreen: {fileID: 0}
|
||||
systemSplashScreenType: 0
|
||||
_systemLoadingScreenBackground: 0
|
||||
ovrPluginMd5Win64: aa662cdf2f901973cc80422bf87a766d1bbe7d8a73b1be1e622af9e4457d65e2
|
||||
ovrPluginMd5Android: b191da349d7c05c640e5f41721d8abdfa2a3f8d400e1e1d353e3c5d59202932c
|
||||
ovrPluginMd5Win64: aa662cdf2f901973cc80422bf87a766d438fe4f2245bacd864e9180e0a41d7ca
|
||||
ovrPluginMd5Android: b191da349d7c05c640e5f41721d8abdfa7931b9213e8e481fc0316f7eef4ffc9
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f597f19f656ba56eae4f6a3a7cc528f4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 48e08dc33330d11e9d4a1b246c52e4f6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed09910c0094cb27be8f3ca264680da3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc355dd4cf1e6173beaeb22c2858cbe1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 91b0b4c77fdd1d24aa1af646e9d29960
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aebd7ef925dd4fe4690c3238e879f914
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
7
Assets/Plugins/Zenject/Source/Zenject.csproj.meta
Normal file
7
Assets/Plugins/Zenject/Source/Zenject.csproj.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8645273165cb7f54290d6eaa1e10ab37
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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
|
||||
|
||||
47
Assets/Prefabs/SceneManager.prefab
Normal file
47
Assets/Prefabs/SceneManager.prefab
Normal file
@@ -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}
|
||||
7
Assets/Prefabs/SceneManager.prefab.meta
Normal file
7
Assets/Prefabs/SceneManager.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 195c448c3b94b5f47a2aa13187a0bc99
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
48
Assets/Resources/Managers/LobbyManager.prefab
Normal file
48
Assets/Resources/Managers/LobbyManager.prefab
Normal file
@@ -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}
|
||||
7
Assets/Resources/Managers/LobbyManager.prefab.meta
Normal file
7
Assets/Resources/Managers/LobbyManager.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 81d211fb3f60c2644a664537a51bda29
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -80,3 +80,5 @@ MonoBehaviour:
|
||||
type: 3}
|
||||
playerPrefab: {fileID: 75161255762383020, guid: 1ef3259331ddc1f4d94b628323ec45f3,
|
||||
type: 3}
|
||||
sceneManagerPrefab: {fileID: 9083120132262756458, guid: 195c448c3b94b5f47a2aa13187a0bc99,
|
||||
type: 3}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<HVRObjectCollisionDisabler>()
|
||||
Container.Bind<HVRPlayerController>()
|
||||
.FromComponentInNewPrefab(playerPrefab)
|
||||
.AsSingle()
|
||||
.OnInstantiated<HVRObjectCollisionDisabler>((ctx, obj) =>
|
||||
.OnInstantiated<HVRPlayerController>((ctx, obj) =>
|
||||
{
|
||||
obj.name = playerPrefab.name;
|
||||
obj.transform.parent.name = playerPrefab.name;
|
||||
})
|
||||
.NonLazy();
|
||||
|
||||
Container.Bind<SceneManager>()
|
||||
.FromComponentInNewPrefab(sceneManagerPrefab)
|
||||
.AsSingle()
|
||||
.OnInstantiated<SceneManager>((ctx, obj) =>
|
||||
{
|
||||
obj.name = sceneManagerPrefab.name;
|
||||
})
|
||||
.NonLazy();
|
||||
}
|
||||
|
||||
@@ -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<LobbyManager>()
|
||||
.FromComponentsInNewPrefabResource("Managers/LobbyManager")
|
||||
.AsSingle()
|
||||
.OnInstantiated<LobbyManager>((ctx, obj) =>
|
||||
{
|
||||
obj.name = "LobbyManager";
|
||||
})
|
||||
.NonLazy();
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
21
Assets/Scripts/Managers/LobbyManager.cs
Normal file
21
Assets/Scripts/Managers/LobbyManager.cs
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Managers/LobbyManager.cs.meta
Normal file
11
Assets/Scripts/Managers/LobbyManager.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b8b4a0794fa1d6c44adcec647be166a6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
60
Assets/Scripts/Managers/SceneManager.cs
Normal file
60
Assets/Scripts/Managers/SceneManager.cs
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Managers/SceneManager.cs.meta
Normal file
11
Assets/Scripts/Managers/SceneManager.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 324a182340742c54cbdb3967f1916e29
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user