回転
Unityでのオイラー角
スクリプトとInspectorの角度が一致しないと思ったら、Unity内ではオブジェクトの傾きはQuaternionで保持しているので、0-360度の範囲を超える情報というのを持っていないようです。
UnityのマニュアルのUnityの回転と向きによると、365度と入れた場合は、5度に置き換わるため、360度+5度という情報は消えてしまうようです。
DOTweenでの回転方向
なぜかDOTweenを使って、DORotateQuaternionをした際に、45と45±360を入れた際に回転方向が逆になった。上記でいうと、360ずらしたものは同じはずなので、向きなどないような気もするけど、、、
Quaternionが複雑なのでどの場合でもこれができるのかはわからないけど、とりあえず回転方向を変えたい場合は360度ずらした数値を入れるとできました。
回転する際には1度角度を0-360の範囲で再設定したほうがいいかもしれません。
DOTweenでの複数回回転
複数回回転するには、720度などと入れても2回転はしません。
そこで、SetLooks(int)とRotateMode.FastBeyond360をつかって、やろうと思いましたが、DORotateで回すと意図しない回り方をすることがあります。
なので、OnCompleteに回転するメソッドを再度呼び出し任意の回数をしたところで抜けるようにしました。
TweenCallback RoundAction = null; float startRotateAngleX = trans.localEulerAngles.x; RoundAction = () => { if (++count > 4) return; startRotateAngleX += 180f; trans.DOLocalRotateQuaternion(Quaternion.AngleAxis(startRotateAngleX, Vector3.right), 0.15f).SetEase(Ease.Linear).OnComplete(RoundAction); }; RoundAction();
ん〜、これだとイージングがLinerでないと変だし、一瞬止まるのでなんかもっといい方法があるような気がします。。。