[Unity] Unity初心者がゲーム開発してみた(メダル集め編2)

どうも、tatsuです!

今回は前回に引き続き、Unityでメダル集めゲームを開発していこうと思います!

[Unity] Unity初心者がゲーム開発してみた(メダル集め編1)

2017.10.01
前回はオブジェクトに配置するところまでやったので、今回は当たり判定を付けていこうと思います。
それでは作っていきましょう!

Physicsを使って当たり判定を付ける

以前の記事では自前で当たり判定を付けていましたが、今回はPhysicsというものを使用して当たり判定を付けようと思います。

Physicsとは?
PhysicsとはUnityに標準でついている物理エンジンのことで、オブジェクトの物理的な衝突や重力操作を行ってくれるライブラリです。
例えば現段階でゲームを動かしてみても全てのオブジェクトはその場に止まったままですが、プレイヤーにPhysicsを付けると重力に従って下に落ちていきます。また、地面にもPhysicsを付けることでプレイヤーが地面にあたるとその場に止まります。
簡単なゲームではPhysicsを使わなくても当たり判定を実装できますが、複雑な当たり判定を行いたい場合にはPhysicsを使用すると楽に実装できるのでぜひ使ってみてください!

プレイヤーにPhysicsを適用する

1.プレイヤーを選択し、インスペクタから[Add Component]→[Physics 2D]→[Circle Collider 2D]を選択してください。

2.緑色の枠が当たり判定の範囲ですので、プレイヤーの大きさに調整します。インスペクタの[Circle Collider 2D]→[Radius]を0.1に設定してください。

3.このままではプレイヤーが転がってしまうので、インスペクタから[Add Component]→[Physics 2D]→[Box Collider 2D]を追加します。

4.インスペクタの[Box Collider 2D]→[Offset][Size]を以下のように設定してください。

5.インスペクタから[Add Component]→[Physics 2D]→[Rigidbody 2D]を追加します。
これを追加することによって、重力で落下するようになります。

6.画面上部のスタートマークのボタンをクリックして、ゲームを実行してみてください。
プレイヤーが下に落ちていくことを確認します。

壁にPhysicsを適用する

プレイヤーにPhysicsを適用したように、上下左右の壁にもRigidbodyとColliderを付けていきます。
1.壁オブジェクトを選択し、インスペクタから[Add Component]→[Physics 2D]→[Rigidbody 2D]を追加します。

2.インスペクタの[Rigidbody 2D]の[Body Type]を[Static]にします。これによって、壁は重力で下に落ちなくなります。

3.インスペクタから[Add Component]→[Physics 2D]→[Box Collider 2D]を追加します。

4.オブジェクトの大きさに合わせるように[Box Collider 2D]を変形します。

5.画面上部のスタートマークのボタンをクリックして、ゲームを実行してみてください。
プレイヤーが下に落ちていき、地面にぶつかるとその場に留まることを確認します。

メダルにPhysicsを適用する

最後にメダルにPhysicsを付けます。メダルは衝突してもすり抜けるようにしたいので、衝突後の物理挙動はなくて構いません。なのでメダルにはRigidbodyは付けずにColliderのみ適用します。
1.メダルオブジェクトを選択し、インスペクタから[Add Component]→[Physics 2D]→[Circle Collider 2D]を追加します。

2.メダルの大きさに合わせるように、Colliderを変形します。

3.すり抜けさせるために、インスペクタの[Circle Collider 2D]の[Is Trigger]にチェックを入れます。

4.検証はプレイヤーの動きを実装した時にします。

まとめ

今回はPhysicsを適用するところまでご紹介しました。
次回はプレイヤーの動きを実装していきたいと思います。
では!

[Unity] Unity初心者がゲーム開発してみた(メダル集め編3)

2017.10.03

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です