public void TeleportPlayer(Transform player) { if (isActive) { SaveablePrefabRoot root = player.parent.GetComponent <SaveablePrefabRoot>(); SaveablePrefabRoot boat = player.GetComponent <PlayerSailor>().boat?.GetComponent <SaveablePrefabRoot>(); if (boat != null) { root.transform.GetChild(0).position = new Vector3(spawnPosition.x, spawnPosition.y + 3, spawnPosition.z); // new Vector3(234, 4, -128);-317 0.5 127.5 boat.transform.eulerAngles = spawnRotation; // new Vector3(0, 180, 0); // boat.getComponent<Boat>().SetSailsTo(0); boat.GetComponent <WaterRigidBody>().Velocity = Vector3.zero; boat.transform.position = spawnPosition; SceneSwitcher.EnterScene(nextSceneName, saveCurrent, loadNext, root, boat); } } }
public static void EndGame() { GameObject player = GameManager.Player; InterfaceController interfaceController = player.GetComponent <InterfaceController>(); GameObject admiral = FindGameObjectWithTag("Admiral"); admiral.GetComponent <DialogTrigger>().DisableInteraction(); player.transform.parent.GetComponent <EndGameMusic>().PlayMusic(); Transform cam = Camera.main.transform; interfaceController.Clear(); GameManager.FreezePlayer(); MonoBehaviour m = player.GetComponent <MonoBehaviour>(); m.DoDelayed(0.25f, delegate { Vector3 observationPosition = new Vector3(23.68f, 27.49f, -27.52f); Vector3 observationEuler = new Vector3(90.00001f, 0, 38.817f); m.StartCoroutine(SmoothTransformation <Vector3> .SmoothRotateAngleEuler(cam.eulerAngles, observationEuler, 4f, v => cam.eulerAngles = v)); m.StartCoroutine( SmoothTransformation <Vector3> .SmoothRotateEuler(cam.position, observationPosition, 4f, v => cam.position = v, () => { interfaceController.DoDelayed(5f, delegate { admiral.GetComponent <IntroAdmiral>().JumpInWater(); }); Vector3 observationPosition2 = new Vector3(95, 255.7f, -116.1f); Vector3 observationEuler2 = new Vector3(51.937f, -38.817f, 0); m.StartCoroutine(SmoothTransformation <Vector3> .SmoothRotateAngleEuler(cam.eulerAngles, observationEuler2, 16f, v => cam.eulerAngles = v)); m.StartCoroutine( SmoothTransformation <Vector3> .SmoothRotateEuler(cam.position, observationPosition2, 17.8f, v => cam.position = v, delegate { SceneSwitcher.EnterScene("MenueScene", false, false); })); }) ); }); }
void Update() { if (Input.GetKeyDown(KeyCode.S)) { if (dir) { SceneSwitcher.EnterScene("SmallTestScene", true, true); } else { if (count == 0) { SceneSwitcher.EnterScene("EmptyScene", true, true, saveableObject); } else { SceneSwitcher.EnterScene("EmptyScene", true, true); } } dir = !dir; count++; } }