Exemplo n.º 1
0
    /// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    IEnumerator DoTransitionTo(bl_TPViewData newViewState)
    {
        OnViewChanged();
        Vector3    origin         = playerCamera.localPosition;
        Quaternion originRot      = Quaternion.Euler(playerCamera.localEulerAngles);
        Vector3    targetPosition = newViewState.GetViewPosition;
        Quaternion targetRot      = Quaternion.Euler(newViewState.ViewRotation);

        cameraRay.ExtraRayDistance = newViewState.DistanceFromPlayer;
        CurrentViewData            = newViewState;

        float d = 0;
        float t = 0;

        while (d < 1)
        {
            d += Time.deltaTime / newViewState.TransitionDuration;
            t  = newViewState.transitionCurve.Evaluate(d);
            playerCamera.localPosition = Vector3.Lerp(origin, targetPosition, t);
            playerCamera.localRotation = Quaternion.Slerp(originRot, targetRot, t);
            cameraShaker?.GetDefaultPosition();
            yield return(null);
        }
        cameraShaker?.GetDefaultPosition();
    }
Exemplo n.º 2
0
    /// <summary>
    /// Make transition to the default view position
    /// </summary>
    public void TransitionToDefault()
    {
        m_overrideViewState = null;
        m_viewOverrideState = TPViewOverrideState.None;

        if (playerViewMode == MPlayerViewMode.FirstPerson || isAiming)
        {
            return;
        }

        StartCoroutine(DoTransitionTo(viewState));
    }
Exemplo n.º 3
0
    /// <summary>
    ///
    /// </summary>
    public void TransitionTo(bl_TPViewData newViewState, TPViewOverrideState overrideState = TPViewOverrideState.OverrideSingle)
    {
        m_viewOverrideState = overrideState;
        m_overrideViewState = newViewState;

        if (!initialized)
        {
            SetDefaultView();
        }

        if (playerViewMode == MPlayerViewMode.FirstPerson || isAiming)
        {
            return;
        }

        StartCoroutine(DoTransitionTo(newViewState));
    }
Exemplo n.º 4
0
    /// <summary>
    ///
    /// </summary>
    void SetDefaultView()
    {
        if (initialized)
        {
            return;
        }

        var gpv = bl_CameraViewSettings.Instance.CurrentViewMode;

        if (gpv == MPlayerViewMode.ThirdPerson)
        {
            playerViewMode = MPlayerViewMode.ThirdPerson;
            SetupThirdPerson();
            cameraRay.ExtraRayDistance = viewState.DistanceFromPlayer;
            playerCamera.localPosition = viewState.GetViewPosition;
            playerCamera.localRotation = Quaternion.Euler(viewState.ViewRotation);
            cameraShaker?.GetDefaultPosition();
            CurrentViewData = viewState;
        }
        initialized = true;
    }
Exemplo n.º 5
0
    /// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    IEnumerator DoAimTransition(bool aiming)
    {
        OnViewChanged();
        bl_TPViewData toData = viewState;

        if (m_viewOverrideState == TPViewOverrideState.OverrideDefault || m_viewOverrideState == TPViewOverrideState.OverrideAll)
        {
            toData = m_overrideViewState;
        }
        CurrentViewData = toData;

        Vector3    origin         = playerCamera.localPosition;
        Vector3    targetPosition = toData.GetViewPosition;
        Quaternion originRot      = Quaternion.Euler(playerCamera.localEulerAngles);
        Quaternion targetRot      = Quaternion.Euler(toData.ViewRotation);

        if (aiming)
        {
            targetPosition = new Vector3(viewAimState.ViewPosition.x, viewAimState.ViewPosition.y, -viewAimState.DistanceFromPlayer);
            targetRot      = Quaternion.Euler(viewAimState.ViewRotation);
        }

        float d = 0;
        float t = 0;

        while (d < 1)
        {
            d += Time.deltaTime / viewAimState.TransitionDuration;
            t  = bl_CameraViewSettings.Instance.aimTransitionCurve.Evaluate(d);
            playerCamera.localPosition = Vector3.Lerp(origin, targetPosition, t);
            playerCamera.localRotation = Quaternion.Slerp(originRot, targetRot, t);
            cameraShaker?.GetDefaultPosition();
            yield return(null);
        }
        cameraShaker?.GetDefaultPosition();
    }
Exemplo n.º 6
0
    /// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    IEnumerator DoViewTransition()
    {
        OnViewChanged();
        Vector3    origin         = playerCamera.localPosition;
        Quaternion originRot      = Quaternion.Euler(playerCamera.localEulerAngles);
        Vector3    targetPosition = defaultFPPosition;
        Quaternion targetRot      = Quaternion.Euler(defaultFPRotation);

        bl_TPViewData toData = viewState;

        if (m_viewOverrideState == TPViewOverrideState.OverrideDefault || m_viewOverrideState == TPViewOverrideState.OverrideAll)
        {
            toData = m_overrideViewState;
        }
        CurrentViewData = toData;

        if (playerViewMode == MPlayerViewMode.ThirdPerson)
        {
            SetupThirdPerson();
            cameraRay.ExtraRayDistance = toData.DistanceFromPlayer;
            targetPosition             = toData.GetViewPosition;
            targetRot = Quaternion.Euler(toData.ViewRotation);
        }
        else
        {
            cameraRay.ExtraRayDistance       = 0;
            bl_UCrosshair.Instance.fadeOnAim = true;
        }

        float d = 0;
        float t = 0;

        while (d < 1)
        {
            d += Time.deltaTime / toData.TransitionDuration;
            t  = toData.transitionCurve.Evaluate(d);
            playerCamera.localPosition = Vector3.Lerp(origin, targetPosition, t);
            playerCamera.localRotation = Quaternion.Slerp(originRot, targetRot, t);
            cameraShaker?.GetDefaultPosition();
            yield return(null);
        }
        //update the camera shaker origin position
        cameraShaker?.GetDefaultPosition();

        if (playerViewMode == MPlayerViewMode.FirstPerson)
        {
            playerSettings.RemoteObjects.SetActive(false);
            weaponCamera.enabled = true;
            playerNetwork.gunManager.GetCurrentWeapon()?.ResetDefaultMuzzlePoint();

#if UNITY_POST_PROCESSING_STACK_V2
            if (playerCameraEffects != null)
            {
                playerCameraEffects.enabled = false;
            }
            if (weaponCameraEffects != null)
            {
                weaponCameraEffects.enabled = true;
            }
#endif
        }
    }