モノ創りで国造りを

ハード/ソフト問わず知見をまとめてます

Unityでシーソーを作る2

Unityってほんと便利。
もっと簡単にシーソーを作れないか探したら
Hinge Jointというものがありました。
これでブロックの中心を固定するだけでシーソーできるやん・・・
ゲーム開発に必要なのはプログラミング能力ではなくて
ツールを使いこなす能力ですね。

説明するまでもないですが、やり方を記載しておきます。
いやほんと説明不要なんですがね。
Body TypeがDynamicのオブジェクトにHinge Jointを追加します。
何やら緑の円が表示されましたが、これでオブジェクトの中心が固定されました。
f:id:yuji2yuji:20171222085704p:plain
固定したい箇所はインスペクターのConnected Anchorで設定できます。
デフォルトだとオブジェクトの中心が設定されているので
そのままでシーソーの挙動になります。
このままではシーソーが途中で止まることなく回転し続けるので
回転範囲を決める必要があります。
Hinge Jointを追加した際に緑の円が表示されましたね。
実はこれがオブジェクトの回転範囲を表しています。
この回転範囲はインスペクターで設定できます。
Use limitをチェックし、Angle Limitsをクリック。
Upper AngleとLower Angleに回転範囲を設定すればOK。
これで回転角度の上限と下限が設定できます。
f:id:yuji2yuji:20171222085419p:plain
角度を制限したので緑の円が扇形になりました。
このように、回転範囲がオブジェクト上に表示されるので
視覚的にもわかりやすいです。
f:id:yuji2yuji:20171222085432p:plain

Unityすごい。
インスペクター上はその他にもMotorやTorqueが設定できます。
ヒンジジョイントしたオブジェクトを自動で回転させたり、
回転スピードを調節したり、
一定以上の力がかかると突然回転が速くなったり、
といった設定ができます。

うーん
Unityすごすぎ