こんにちは、SAT-BOXのコアラです。
本題の前に宣伝です!
先週販売開始しました「Voxel Shot for Nintendo Switch」、Nintendo Switch週間ダウンロードランキング2位になりました!
皆でワイワイ盛り上がれるゲームですので、Switchを持ってる方はぜひゴールデンウィーク中に遊んで欲しいなって思います!
↓↓当ブログの紹介記事です
sat-box.hatenablog.jp
では本題です。
Unityで、Rigidbodyによる回転はRigidbodyのangularVelocityという回転ベクトルを元に行われますが、初期状態だと、このベクトルには上限があります。
それがmaxAngularVelocityですね。
maxAngularVelocityは初期値が7で、そのままだと1秒間に約1回転するのが上限です。
なんで7で約1回転なのかというと、端的に言えばラジアン角だからです。
ラジアン角だと、360°は2πになり、2πは約6.28です。
僕の推測ですが、初期値が7なのは1回転の6.28より大きくて近い整数だからかなと思ってます。
maxAngularVelocityは回転のし過ぎによる挙動の破綻を防ぐためにあるので、モノによって適切な数値を入れるのが良いと思います。
入れる処理は単純にこうです。
public class Sample : MonoBehaviour { void Start () { GetComponent<Rigidbody>().maxAngularVelocity = 100.0f; } }
100.0fだと一秒間に約16回転ですね、速そう。
以上です。