Nearly finished.....
This commit is contained in:
57
Assets/Scripts/SceneManagement/ConditionalTeleportPlayer.cs
Normal file
57
Assets/Scripts/SceneManagement/ConditionalTeleportPlayer.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Scampz.GameJam.Assets.Scripts.SceneManagement
|
||||
{
|
||||
public class ConditionalTeleportPlayer : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private Transform _spawnPointA;
|
||||
[SerializeField]
|
||||
private Transform _spawnPointB;
|
||||
[SerializeField]
|
||||
private Camera[] camerasToActivateA;
|
||||
[SerializeField]
|
||||
private Camera[] camerasToActivateB;
|
||||
|
||||
private void OnTriggerEnter(Collider collider)
|
||||
{
|
||||
if (collider.CompareTag("Player"))
|
||||
{
|
||||
StartCoroutine(LoadNextLevel());
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerator LoadNextLevel()
|
||||
{
|
||||
var spawnPoint = _spawnPointA;
|
||||
var cameras = camerasToActivateA;
|
||||
|
||||
if (UnlockSanctumState.Instance.SanctumUnlocked)
|
||||
{
|
||||
spawnPoint = _spawnPointB;
|
||||
cameras = camerasToActivateB;
|
||||
}
|
||||
|
||||
var levelChanger = FindObjectOfType<LevelChanger>();
|
||||
levelChanger.FadeAnimation();
|
||||
yield return null;
|
||||
var player = GameObject.FindGameObjectWithTag("Player");
|
||||
var cc = player.GetComponent<CharacterController>();
|
||||
cc.enabled = false;
|
||||
player.SetActive(false);
|
||||
yield return new WaitForSeconds(1.0f);
|
||||
yield return null;
|
||||
player.transform.position = spawnPoint.position;
|
||||
player.transform.rotation = spawnPoint.rotation;
|
||||
cc.enabled = true;
|
||||
var allCamerasInCurrentScene = FindObjectsOfType<Camera>();
|
||||
foreach (var sceneCamera in allCamerasInCurrentScene)
|
||||
sceneCamera.enabled = false;
|
||||
foreach (var camera in cameras)
|
||||
camera.enabled = true;
|
||||
player.SetActive(true);
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1fb7be0fc28d35643b97add275864329
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,4 +1,5 @@
|
||||
using Scampz.GameJam.Assets.Scripts;
|
||||
using Scampz.GameJam.Assets.Scripts.Audio;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
@@ -42,6 +43,7 @@ namespace Scampz.GameJam
|
||||
private void LoadNextLevel()
|
||||
{
|
||||
_loaded = true;
|
||||
SFXManager.Instance.PlaySoundEffect(SoundEffectName.Ok);
|
||||
GameManager.Instance.LoadScene(_scene, LoadSceneMode.Single);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user