예제 #1
0
        public virtual void ApplyKeepUp()
        {
            if (!_keepUp)
            {
                return;
            }
            Quaternion target;

            if (_upReferenceObject == null)
            {
                target = ExtRotation.TurretLookRotation(_toMove.rotation, _upReference);
            }
            else
            {
                if (_keepUpGalaxyOriented)
                {
                    target = ExtRotation.TurretLookRotation(_toMove.rotation, _toMove.position - _upReferenceObject.position);
                }
                else
                {
                    target = ExtRotation.TurretLookRotation(_toMove.rotation, _upReferenceObject.up);
                }
            }
            _toMove.rotation = ExtRotation.OwnSmoothDamp(_toMove.rotation, target, ref _refRotationUpVelocity, _dampingTimeRotation);
        }
예제 #2
0
        public void BasicRotationAndOffset(float offset)
        {
            Quaternion target = RotationWithoutOffsetFromSpline(offset);

            target = target * Quaternion.Euler(_offsetRotation);

            _toMove.rotation = ExtRotation.OwnSmoothDamp(_toMove.rotation, target, ref _refRotationVelocity, _dampingTimeRotation);
        }
예제 #3
0
 public virtual void UpdateRotation()
 {
     if (_rotateAlongSpline)
     {
         Quaternion target = _spline.EvaluateOrientationAtUnit(PathPosition, PositionUnits);
         target           = target * Quaternion.Euler(_offsetRotation);
         _toMove.rotation = ExtRotation.OwnSmoothDamp(_toMove.rotation, target, ref _refRotationVelocity, _dampingTimeRotation);
     }
     ApplyKeepUp();
 }
예제 #4
0
        private void ApplyChange()
        {
            //_camera.transform.position = _follow.position;
            //_camera.transform.LookAt(_lookAt, _upReference.up);



            _camera.transform.position = ExtVector3.OwnSmoothDamp(_camera.transform.position, _follow.position, ref _refPositionVelocity, _dampingPosition, Mathf.Infinity, Time.deltaTime);
            Quaternion targetRotation = Quaternion.LookRotation(_lookAt.position - _camera.transform.position, _upReference.up);

            //target = target * Quaternion.Euler(_offsetRotation);
            _camera.transform.rotation = ExtRotation.OwnSmoothDamp(_camera.transform.rotation, targetRotation, ref _refRotationVelocity, _dampingLookAt, Time.deltaTime);
        }