モノ創りで国造りを

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

Unityでシーソーを作成する

本記事は著者が無知ゆえの内容でした。大目にみてやってください。
より簡単なシーソーの作成方法は
yuji2yuji.hatenablog.com


横スクロールでシーソーのようなギミックが欲しい時ってありますよね?

ありますよね!?

UnityのColliderを使えばサクッと実装できてしまいます。
いざとなれな、スクリプトすら不要です。

横長ブロックにPolygon Collider2Dを追加し
中心部をくりぬきます。
f:id:yuji2yuji:20171221130132p:plain
このオブジェクトは重力の影響を受けるように、
Body typeをDynamicにしておきます。

しかし、このままでは横長ブロックそのものが落下してしまいます。
それを避けるためにPolygon Colliderをくりぬいた所に、
Circle Collider2Dを追加した別のオブジェクトを配置します。
これがシーソーの軸になります。
ここでは、オブジェクトを透過色にしています。
f:id:yuji2yuji:20171221130259p:plain
このオブジェクトのBody typeはkinematicにします。
そうすることでブロック重力の影響を受けつつも落下するのを防げます。

このままではブロックは回転し続けるので、横長ブロックの回転を止めるための地面オブジェクトが必要です。
f:id:yuji2yuji:20171221130935p:plain
これと同じものが左右に必要です。もちろん通常の地面を表すオブジェクトでも良いです。

これで、キャラクタの位置に応じて横長ブロックがバッタンと倒れるシーソーオブジェクトができました。
めでたし、めでたし。

Polygon Collider 2Dの調節が少し難しい・・・