Ejemplo n.º 1
0
    private void ChangeCameraMode()
    {
        if (playerCameraMode == MyEnum.PlayerCameraMode.Roaming)
        {
            playerCameraMode = MyEnum.PlayerCameraMode.Fight;

            cinemachineRoamingCamera.m_XAxis.m_AccelTime = 0f;
            cinemachineRoamingCamera.m_XAxis.m_DecelTime = 0f;

            Vector3 offset = cinemachineRoamingCamera.State.RawPosition - cinemachineRoamingCamera.Follow.position;
            offset.y = 0;
            float value = Vector3.SignedAngle(Vector3.back, offset, Vector3.up);
            cinemachineRoamingCamera.m_BindingMode = Cinemachine.CinemachineTransposer.BindingMode.WorldSpace;
            cinemachineRoamingCamera.UpdateCameraState(Vector3.up, -1);
            cinemachineRoamingCamera.m_XAxis.Value = value;
        }
        else
        {
            playerCameraMode = MyEnum.PlayerCameraMode.Roaming;

            cinemachineRoamingCamera.m_XAxis.m_AccelTime = 0.1f;
            cinemachineRoamingCamera.m_XAxis.m_DecelTime = 0.1f;

            cinemachineRoamingCamera.m_BindingMode = Cinemachine.CinemachineTransposer.BindingMode.SimpleFollowWithWorldUp;
            cinemachineRoamingCamera.UpdateCameraState(Vector3.up, -1);
            cinemachineRoamingCamera.m_XAxis.Value = 0;
        }

        cinemachineRoamingCamera.PreviousStateIsValid = false;
    }
Ejemplo n.º 2
0
    void Start()
    {
        characterController = GetComponent <CharacterController>();
        movementSpeed       = 5.0f;
        rotationSpeed       = 5.0f;

        if (!currentCamera)
        {
            Camera[] cameraList = FindObjectsOfType <Camera>();
            if (cameraList.Length > 0)
            {
                currentCamera = cameraList[0];
            }
        }

        playerCameraMode = MyEnum.PlayerCameraMode.Roaming;
        cameraLerp       = 1f;
    }