IEnumerator TransitionCoroutine(RoomScript targetRoom, Vector3 localPosition) { foreach (Renderer renderer in targetRoom.GetComponentsInChildren <Renderer>()) { renderer.enabled = true; } CameraBehaviour camera = GameObject.Find("Camera").GetComponent <CameraBehaviour>(); camera.target = null; camera.transform.position = new Vector3(-9999999, -99999, -999999); RoomScript oldRoom = player.GetComponentInParent <RoomScript>(); player.GetComponent <PlayerMovement>().enabled = false; player.GetComponent <PlayerInteractions>().enabled = false; for (float i = 0.0f; i <= 1.0f; i += 0.01f) { main_camera.FOV += i * 2.5f; tweenBehaviour.SetAlpha(i); yield return(null); } player.transform.SetParent(targetRoom.transform); player.transform.localPosition = localPosition; player.GetComponent <PlayerMovement>().Update(); for (float i = 1.0f; i >= 0.0f; i -= 0.01f) { main_camera.FOV -= i * 2.5f; tweenBehaviour.SetAlpha(i); yield return(null); } yield return(null); player.GetComponent <PlayerMovement>().enabled = true; player.GetComponent <PlayerInteractions>().enabled = true; if (oldRoom != targetRoom) { foreach (Renderer renderer in oldRoom.GetComponentsInChildren <Renderer>()) { renderer.enabled = false; } } }
IEnumerator BlendOut() { CameraBehaviour camera = GameObject.Find("Camera").GetComponent <CameraBehaviour>(); camera.target = null; camera.transform.position = new Vector3(-999999, -99999, -99999); TweenBehaviour tween = GameObject.Find("Main Camera").GetComponent <TweenBehaviour> (); for (float i = 0.0f; i <= 1.0f; i += 0.01f) { tween.SetAlpha(i); yield return(null); } SceneManager.LoadScene("GameOver"); }
IEnumerator Tweening(DoorBehaviour front, DoorBehaviour back) { camera.GetComponent <CameraBehaviour>().target = back.gameObject; main_camera.GetComponent <CameraBehaviour>().target = front.gameObject; RoomScript frontRoom = front.GetComponentInParent <RoomScript>(); player.GetComponent <PlayerMovement>().enabled = false; player.GetComponent <PlayerInteractions>().enabled = false; float alpha = 0.0f; float offset = 0.0f; for (float i = 0.0f; i <= 1.0f; i += 0.025f) { alpha = i; if (!frontDoor) { alpha = 1 - i; } offset = alpha * frontRoom.depth; main_camera.GetComponent <CameraBehaviour>().ZOffset = offset; camera.GetComponent <CameraBehaviour>().ZOffset = offset - frontRoom.depth; tweenBehaviour.SetAlpha(alpha); yield return(null); } main_camera.GetComponent <CameraBehaviour>().target = player; main_camera.GetComponent <CameraBehaviour>().ZOffset = 0.0f; yield return(null); tweenBehaviour.SetAlpha(0.0f); player.GetComponent <PlayerMovement>().enabled = true; player.GetComponent <PlayerInteractions>().enabled = true; RoomScript oldRoom; RoomScript newRoom; if (frontDoor) { oldRoom = frontRoom; newRoom = back.GetComponentInParent <RoomScript>(); } else { oldRoom = back.GetComponentInParent <RoomScript>(); newRoom = frontRoom; } if (newRoom != GetComponentInParent <RoomScript>()) { foreach (Renderer renderer in oldRoom.GetComponentsInChildren <Renderer>()) { renderer.enabled = false; } } }