/// <summary> /// Reelを指定の角度まで回転させるTweenを取得する /// </summary> /// <param name="angle">絶対的な角度</param> /// <param name="duration"></param> public Tween RollAbsolutely(Angle angle, float duration, AngleTweenDirection direction = AngleTweenDirection.Both) => DOTween.To(AnglePlugin.Instance, NowAngleGetter, ApplyAngleSetter, angle, duration) .OnComplete(PositiveNormalize) .SetOptions(direction);
public static Tweener SetOptions(this TweenerCore <Angle, Angle, AngleOptions> t, AngleTweenDirection direction, AngularVelocityUnit angularVelocityUnit = AngularVelocityUnit.Unspecified) { if (t == null || !t.active) { return(t); } t.plugOptions.Direction = direction; t.plugOptions.AngularVelocityUnit = angularVelocityUnit; return(t); }
/// <summary> /// Roleの間隔の倍数を指定により、現在の角度からReelを回転させる /// </summary> /// <param name="multiple">Roleの間隔の何倍の角度ぶん、回転させるか</param> /// <param name="duration"></param> /// <param name="direction"></param> /// <returns></returns> public Tween RollMultiple(float multiple, float duration, AngleTweenDirection direction = AngleTweenDirection.Both) => Roll(roleIntervalAngle * multiple, duration, direction);
/// <summary> /// 現在の角度から、任意の角度ぶんReelを回転させる /// </summary> /// <param name="angle">何度回転させるか</param> /// <param name="duration"></param> public Tween Roll(Angle angle, float duration, AngleTweenDirection direction = AngleTweenDirection.Both) => RollAbsolutely(angle, duration, direction).SetRelative();