君がゲームを作る!Unityゲーム開発入門
第24回 横スクロールアクションのキャラクターを配置する

タイルを物理演算の対象にする、かんたんな方法だよ

みなさん、こんにちは!

こんにちはと言いながら、これを書いてる現在は午前2時30分です。

じかんわすれたっていいじゃないか、ひっきーだもの。
あらたまですを。

さて、今日は Unity入門の第24回目、キャラクターを配置していきましょう!

前回は?

前回 はタイル、タイルパレット、タイルマップを使ってステージを作成して終わりましたね。

今回はキャラクターを配置したいと思います!

キャラクターの画像を取り込む

まずはキャラクターの画像を取り込みましょう!

プロジェクトウィンドウで「Sprites」を選択して、忍者の画像をドラッグ&ドロップします。

「Sprites」フォルダ内にキャラクターの画像を取り込むことができました!

キャラクターのゲームオブジェクトを作成する

次にキャラクターのゲームオブジェクトを作成しましょう。

プロジェクトウィンドウから忍者の立ち画像「idle__000」をシーンビューへドラッグ&ドロップします。

キャラクターのゲームオブジェクトが作成されました!
そのままでは少し大きいので、インスペクターウィンドウでScaleのXとYを0.3に変更して小さくしましょう。

プレイモードで動作をみてみよう!

ここで一度テストプレイをして動作を確認してみましょう。

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

キャラクターが宙に浮いたままですね。。これはキャラクターのゲームオブジェクトが物理演算の対象になってないためです。

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

キャラクターに重力を加える

それでは、キャラクターをUnityの物理演算の対象として、重力の影響を受けるようにしましょう。

物理演算の対象とするためにはどうすれば良かったでしょうか?

ゲームオブジェクトにRigidbodyコンポーネントを追加するのでしたね。

キャラクターのゲームオブジェクトを選択して、「Add Component」をクリックします。

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

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

ゲームオブジェクトに「Rigidbody 2D」コンポーネントが追加されました!

それでは、もう一度プレイモードに入って動作をみてみましょう。

キャラクターが重力の影響を受けしたに落ちていきました!
しかし、地面をすり抜けて画面の外まで落ちて行ってしまいましたね。。

これはキャラクターと地面のどちらもが衝突検知の対象外となっているためです。

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

キャラクターの衝突検知を有効にする

それでは、すり抜けてしまわないようにキャラクターと地面の 衝突検知を有効にしましょう!

衝突検知をしたいときは、Colliderコンポーネントを追加すれば良かったですよね。

キャラクターのゲームオブジェクトを選択して、「Add Component」をクリックします。

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

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

地面の衝突検知を有効にする

続いて地面にもColliderコンポーネントを追加します。

地面はタイルから出来ていますね。それぞれのタイルにColliderコンポーネントを追加してもよいのですが、 実はもっとらくちんな方法があります。

タイルマップにColliderコンポーネントを追加してあげると、 そのタイルマップに並べられちゃタイルすべてに衝突検知が有効となるのです。超らくちん。

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

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

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

タイルマップに「Tilemap Collider 2D」が追加されました!

動作を確認しよう!

それではテストプレイして確認してみましょう。

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

地面をすり抜けることなく、キャラクターを配置することができました!

今回はここまでです!

次回はキャラクターをキーボードで操作できるようにしていきたいと思います!

次回へ続く。

>> 続きの記事
【君がゲームを作る!Unityゲーム開発入門】第25回 横方向にキャラクターを操作する