Пример #1
0
        protected override void Awake()
        {
            base.Awake();

            _follow = GetCinemachineComponent <Cinemachine3rdPersonFollow>();
            Assert.IsNotNull(_follow);
        }
Пример #2
0
        private void Start()
        {
            if (cinemachineCam)
            {
                cinemachineFollow = cinemachineCam.GetCinemachineComponent <Cinemachine3rdPersonFollow>();
                targetFov         = startFov = cinemachineCam.m_Lens.FieldOfView;

                camYPos = 0;
            }

            AimX = transform.eulerAngles.y;
        }
        void OnEnable()
        {
            var vcam = GetComponentInChildren <CinemachineVirtualCamera>();

            if (vcam != null)
            {
                TpsFollow    = vcam.GetCinemachineComponent <Cinemachine3rdPersonFollow>();
                FollowTarget = vcam.Follow;
            }

            // Store the base camera distance, for consistent scaling
            if (TpsFollow != null)
            {
                BaseDistance = TpsFollow.CameraDistance;
            }
        }
 private void Start()
 {
     cam      = GetComponent <CinemachineVirtualCamera>().GetCinemachineComponent <Cinemachine3rdPersonFollow>();
     camFocus = GameObject.Find("CameraHeadFocus").transform;
 }
Пример #5
0
        private void Update()
        {
            // make sure we have a handle to the follow component
            if (followCam == null)
            {
                followCam = vcam.GetCinemachineComponent <Cinemachine3rdPersonFollow>();
            }

            cameraInputHorizontal = -Input.GetAxis("Mouse X");
            cameraInputVertical   = Input.GetAxis("Mouse Y");

            if (allowCameraToggle)
            {
                var side = Input.GetButtonDown("CameraSide");
                if (side)
                {
                    doCameraSideToggle = true;
                }

                if (doCameraSideToggle)
                {
                    sideToggleTime = 0f;
                    cameraSide     = followCam.CameraSide;
                    if (cameraSide > 0.1)
                    {
                        desiredCameraSide = 0f;
                    }
                    else
                    {
                        desiredCameraSide = 1f;
                    }
                    doCameraSideToggle = false;
                }

                followCam.CameraSide = Mathf.Lerp(cameraSide, desiredCameraSide, sideToggleTime);
                sideToggleTime      += cameraSideToggleSpeed * Time.deltaTime;
            }

            Debug.DrawRay(Camera.main.transform.position, Camera.main.transform.forward, Color.blue, 1.0f);
            Debug.DrawRay(invisibleCameraOrigin.position, invisibleCameraOrigin.forward, Color.red, 1.0f);

            if (invisibleCameraOrigin != null)
            {
                if (invertHorizontal)
                {
                    cameraX -= cameraVerticalRotationMultiplier * cameraInputVertical;
                }
                else
                {
                    cameraX += cameraVerticalRotationMultiplier * cameraInputVertical;
                }

                if (invertVertical)
                {
                    cameraY -= cameraHorizontalRotationMultiplier * cameraInputHorizontal;
                }
                else
                {
                    cameraY += cameraHorizontalRotationMultiplier * cameraInputHorizontal;
                }

                invisibleCameraOrigin.eulerAngles = new Vector3(cameraX, cameraY, 0.0f);
            }
        }