/// <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);
    }
Esempio n. 2
0
 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);
    }