/// <summary> /// Provides Cinemachine with its target, taken from the TransformAnchor SO containing a reference to the player's Transform component. /// This method is called every time the player is reinstantiated. /// </summary> public void SetupProtagonistVirtualCamera() { Transform target = _protagonistTransformAnchor.Value; freeLookVCam.Follow = target; freeLookVCam.LookAt = target; freeLookVCam.OnTargetObjectWarped(target, target.position - freeLookVCam.transform.position - Vector3.forward); }
public void SetupProtagonistVirtualCamera(Transform target) { foreach (CinemachineVirtualCameraBase vcam in vcamsInScene) { VCamRequiresPlayerTarget vCamRequiresPlayerTarget = vcam.GetComponent <VCamRequiresPlayerTarget>(); if (vCamRequiresPlayerTarget != null) { vCamRequiresPlayerTarget.SetPlayerTarget(target); } } freeLookVCam.OnTargetObjectWarped(target, target.position - freeLookVCam.transform.position - Vector3.forward); }
public void TeleportPlayer(bool respawned) { if (respawned) { audioSource.PlayOneShot(respawnSound); } else { audioSource.PlayOneShot(teleportArriveSound); } Vector3 positionChange = teleportPos - this.transform.position; Vector3 relativeCamPos = cam.transform.position - this.transform.position; this.transform.position = teleportPos; rigidBody.velocity = Vector3.zero; cam.OnTargetObjectWarped(this.transform, positionChange); }