君がゲームを作る!Unityゲーム開発入門
第17回 ステージの枠をすり抜けないようにしよう!

Unity入門 第17回目です!

前回は「タイル」を「タイルマップ」に並べてステージの外枠を作成しましたね。

ですがいざテストプレイをすると、キャラクターが外枠をすり抜けてしまいました。

今回はキャラクターが外枠を飛び出してしまわないようにしていきたいと思います。

今回のながれ

当シリーズ記事の第6回~第7回でチュートリアルを体験したときを思い出してください。

箱型のゲームオブジェクトに"Rigidbody"コンポーネントを追加し、 箱を落下させたり、レーザーを遮断させたりしましたね。

今回はそのときと同じようなことを実施します。

  • キャラクターに"Rigidbody"コンポーネントを追加する(=物理演算の対象とする)
  • タイルマップに"Collider"コンポーネントを追加する(=衝突検知を有効にする)
  • キャラクターに"Collider"コンポーネントを追加する(=衝突検知を有効にする)

キャラクターに"Rigidbody"コンポーネントを追加

それでは、実際にやってみましょう!

まずはお馴染み"Rigidbody"コンポーネントです。これをゲームオブジェクトに追加すると、 そのゲームオブジェクトは物理演算システムの対象とされるようになります。

キャラクターのスプライトをクリックして選択し、"Add Component"をクリックします。

「Physics 2D」をクリックします。

「Rigidbody 2D」をクリックします。

インスペクターウィンドウに「Rigidbody 2D」が追加されました!

このままではゲームをプレイすると、横スクロールアクションのようにキャラクターが下に落ちていってしまいます。 (気になるかたは試しにテストプレイをしてみてください。) そうならないように、「Gravity Scale」(重力の強さ)を0に変えておきましょう。

"Collider"コンポーネント

続いてゲームオブジェクトに"Collider"コンポーネントを追加します。

「Collider(コライダー)」とは単語としては「衝突するもの」という意味です。

Colliderと名の付くコンポーネントをゲームオブジェクトに追加すると、他のゲームオブジェクトとの衝突が検知されるようになります。

今回のような場合だと、タイルマップとキャラクターのゲームオブジェクトにコンポーネントを追加します。

タイルマップに"Collider"コンポーネントを追加

それでは、まずタイルマップに追加していきましょう。

タイルマップに"Collider"コンポーネントを追加すると、タイルマップに並べられたタイルが衝突を検知するようになります。

ヒエラルキーウィンドウで"Tilemap"を選択し、「Add Component」をクリックします。

「Tilemap」をクリックします。

「Tilemap Collider 2D」をクリックします。

インスペクターウィンドウに「Tilemap Collider 2D」が追加されました!

キャラクターに"Collider"コンポーネントを追加

続いてキャラクターの方にも"Collider"コンポーネントを追加します。

キャラクターのスプライトをクリックして選択し、"Add Component"をクリックします。

「Physics 2D」をクリックします。

「Box Collider 2D」をクリックします。

インスペクターウィンドウに「Box Collider 2D」が追加されました!

動作を確認する

これだけで準備は完了です。テストプレイをしてみましょう!

「▶」ボタンをクリックしてプレイモードに入ります。

キャラクターを操作してみると。。外枠にぶつかるようになりました!

「▶」ボタンをもう一度クリックして、プレイモードを抜けておきましょう。

今回はここまでです!

第6~7回のチュートリアルで「コンポーネントとは何か」をすでに知っていたので、 思ったより簡単でしたね!

次回はゲームのゴールを作成していきたいと思います。

次回へ続く。

>> 続きの記事
【君がゲームを作る!Unityゲーム開発入門】第18回 画面に文字を表示しよう!