|
|
- namespace VRTK.Examples.Utilities
- {
- using UnityEngine;
- using UnityEngine.SceneManagement;
-
- public class SceneLoader : MonoBehaviour
- {
- public Object sceneConstructor;
- public bool sdkSwitcher = true;
- public GameObject leftScriptAlias;
- public GameObject rightScriptAlias;
-
- protected VRTK_SDKSetupSwitcher setupSwitcher;
-
- protected virtual void Awake()
- {
- ToggleScriptAlias(false);
- SceneManager.sceneLoaded += OnSceneLoaded;
- SceneManager.LoadScene(sceneConstructor.name, LoadSceneMode.Additive);
- }
-
- protected virtual void LateUpdate()
- {
- if (setupSwitcher != null)
- {
- setupSwitcher.gameObject.SetActive(sdkSwitcher);
- }
- }
-
- protected virtual void OnSceneLoaded(Scene loadedScene, LoadSceneMode loadMode)
- {
- if (loadedScene.name == sceneConstructor.name)
- {
- VRTK_SDKManager sdkManager = FindObjectOfType<VRTK_SDKManager>();
- sdkManager.gameObject.SetActive(false);
- sdkManager.scriptAliasLeftController = leftScriptAlias;
- sdkManager.scriptAliasRightController = rightScriptAlias;
- sdkManager.gameObject.SetActive(true);
- ToggleScriptAlias(true);
- VRTK_SDKManager.ProcessDelayedToggleBehaviours();
- setupSwitcher = sdkManager.GetComponentInChildren<VRTK_SDKSetupSwitcher>();
- }
- }
-
- protected virtual void ToggleScriptAlias(bool state)
- {
- leftScriptAlias.SetActive(state);
- rightScriptAlias.SetActive(state);
- }
- }
- }
|