Esempio n. 1
0
    public void SwitchToFirstPersonView()
    {
        CameraMotor activeMotor = m_cameraController.ActiveMotor;

        if (activeMotor.Name == "1st Person View")
        {
            return;
        }

        m_enableChangeCameraMode = false;
        //m_FPSControllerTrans.gameObject.SetActive(true);

        //if (m_targetTrans.parent != m_FPSControllerTrans.parent)
        //{
        //    m_targetTrans.SetParent(m_FPSControllerTrans.parent, true);
        //}

        Vector3 targetPos = m_targetTrans.localPosition;

        m_targetTrans.position = m_cameraController.transform.localPosition;
        m_targetTrans.rotation = m_cameraController.transform.localRotation;
        m_tweenerToFPV         = m_targetTrans.DOLocalMove(m_cameraController.transform.localPosition, m_tweenTime);
        Vector3 ro = m_targetTrans.eulerAngles;

        ro.x = ro.z = 0;
        Quaternion targetRot = m_targetTrans.localRotation;

        //m_targetTrans.DOLocalRotateQuaternion(targetRot, m_tweenTime);
        m_targetTrans.DOLocalRotate(ro /*targetRot.eulerAngles*/, m_tweenTime, RotateMode.Fast);

        //TransitionMotor transMotor = m_cameraController.GetMotor<TransitionMotor>("Targeting Out");
        //m_cameraController.ActivateMotor(transMotor);

        //m_cameraController.AnchorOffset = new Vector3(0.0f, 1.8f, 0.0f);
        DOTween.To(() => m_cameraController.AnchorOffset, x => m_cameraController.AnchorOffset = x, new Vector3(0.0f, 0, 0.0f), m_tweenTime);

        CameraMotor motor = m_cameraController.GetMotor <CameraMotor>("1st Person View");

        motor.IsEnabled = true;
        m_cameraController.ActivateMotor(motor);

        // 动画开始时禁用相机控制
        motor.IsEnabled = false;

        // 启用通过FOV实现的缩放
        m_cameraController.IsZoomEnabled = true;

        m_tweenerToFPV.OnComplete(OnSwitchedToFirstPersonView);
    }
Esempio n. 2
0
        void DoActivateMotor()
        {
            var go = Fsm.GetOwnerDefaultTarget(gameObject);

            script = go.GetComponent <CameraController>();

            CameraMotor motor = script.GetMotor(modeToActivate.Value);

            script.ActivateMotor(motor);


            return;
        }