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); }
public void BasicRotationAndOffset(float offset) { Quaternion target = RotationWithoutOffsetFromSpline(offset); target = target * Quaternion.Euler(_offsetRotation); _toMove.rotation = ExtRotation.OwnSmoothDamp(_toMove.rotation, target, ref _refRotationVelocity, _dampingTimeRotation); }
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(); }
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); }