private IEnumerator PlayScene() { Player.Camera.enabled = false; yield return(null); yield return(null); yield return(null); MedicinePreparationScene m = (MedicinePreparationScene)G.Instance.Scene; m.Restarted = true; m.PlayFirstRoom(MedicinePreparationScene.AutoPlayStrength.WorkspaceRoom); while (m.IsAutoPlaying) { yield return(null); } Player.Camera.enabled = true; if (ScoreState != null) { G.Instance.Progress.SetProgress(ScoreState); } Destroy(gameObject); }
/// <summary> /// Teleports player and Contents of Pass-Through cabinet to the next room. /// </summary> public void TeleportPlayerAndPassthroughCabinet() { if (playerDst == null || passthroughDst == null) { Logger.Print("Cannot teleport without references to teleportation spots!"); return; } CabinetBase cabinet = passthroughSrc.GetComponent <CabinetBase>(); List <Transform> items = cabinet.GetContainedItems().ConvertAll(obj => obj.transform); foreach (Transform item in items) { float rotDelta = Quaternion.Angle(passthroughSrc.rotation, passthroughDst.rotation); item.position = passthroughDst.position + (item.position - passthroughSrc.position); item.RotateAround(passthroughDst.position, passthroughDst.up, rotDelta); CreateSpawner(item); } foreach (VRHandControls h in VRInput.Hands) { h.Hand.GrabUninteract(); h.Hand.Uninteract(); } player.position = playerDst.position; MedicinePreparationScene m = G.Instance.Scene as MedicinePreparationScene; if (!m.Restarted || MedicinePreparationScene.SavedScoreState == null) { m.SaveProgress(); } }