Пример #1
0
        void Update()
        {
            if (ControlRotation)
            {
                HandleRotationMovement();
            }
            var scroll = PlayerInputSystem.GetAxis("Scroll");

            if (Mathf.Abs(scroll) < 0.05f)
            {
                return;
            }
            CamDistance += (scroll * ZoomSmoothing);
            CamDistance  = Mathf.Clamp(CamDistance, CamMinDistance, CamMaxDistance);
            _cam.transform.localPosition = new Vector3(0, 0, -CamDistance);
        }
Пример #2
0
        private void HandleRotationMovement()
        {
            if (Time.timeScale < float.Epsilon)
            {
                return;
            }
            SetRootRotation(PlayerInputSystem.GetAxis(PlayerControls.MoveX));
            float y = PlayerInputSystem.GetAxis(PlayerControls.LookY);

            _tiltAngle     -= y * TurnSpeed;
            _tiltAngle      = Mathf.Clamp(_tiltAngle, -TiltMin, TiltMax);
            _pivotTargetRot = Quaternion.Euler(_tiltAngle, _pivotEulers.y, _pivotEulers.z);
            if (TurnSmoothing > 0)
            {
                _pivot.localRotation = Quaternion.Slerp(_pivot.localRotation, _pivotTargetRot,
                                                        TurnSmoothing * TimeManager.DeltaTime);
            }
            else
            {
                _pivot.localRotation = _pivotTargetRot;
            }
        }