UnityスクリプトでCubeをころころ転がす


Cube をスクリプトで回転させるときの覚書。

rollcube3

 

基本的に Quaternion を弄るべきではないみたい。

複数軸の回りを続けて回転させるとものすごく複雑になる。

その代わりに transform.Rotate() を使うのがいい。

移動と回転をコルーチンで徐々に行うことによってそれっぽく見せることもできる。

上下左右キー(アローキー)を押したらその方向に回転するスクリプトは以下のようになる。

これを実際に動かすと以下のようになる。

rollcube1

それっぽいけど角が少し地面に埋まるのが気になる。

Vector3.Leap の代わりに Vector3.Slerp を使うと中心(0, 0.5, 0)からの移動のみ角が沈まなくなった。この理由はよくわからないけど使えないため没。

Cubeの回転を分割しつつ、三角関数でポジションを決めるように修正。

これで角が沈まず自然に回転できるようになった。

rollcube2

けどなんか動きがウキウキしているように見える。なぜだろう。

 


コメントを残す

メールアドレスが公開されることはありません。