前回は、Unity のアセット TopDown Engine のサンプルゲームの一つ KoalaDungeon のマップを表示するための Grid コンポーネントやタイルマップの新規作成の方法を紹介しました。
今回は Grid ゲームオブジェクトの下位にある Tilemap 群について紹介します。
※ Unity は 2021.3.14f1、TopDown Engine は 3.1.1 です。主人公のキャラクター画像はぴぽや倉庫様のキャラクターチップを使っています。
Grid と Tilemap の関係
前回紹介した Grid コンポーネントは、指定された形状やサイズで連続したマス目を作ります。
そして Grid の下位に配置された Tilemap 群はそのマス目に応じてマップチップを配置していきます。
Grid は Tilemap 共通のマス目を管理し、 Tilemap はそのマス目単位で配置されたマップチップ群を管理する役割です。
実際のマップのデザインは Tilemap, TilemapRenderer コンポーネントを持つゲームオブジェクトで行います。
KoalaDungeon では、壁などの当たり判定も、障害物だけを配置した Tilemap, TilemapRenderer を持つゲームオブジェクトで行います。
種類別マップの共通コンポーネント
Gound(地面) や Walls(壁) などの種類別マップを表すゲームオブジェクトが持つコンポーネントは、当たり判定の有無などにより持っているコンポーネントが異なります。
また、ゲームオブジェクトごとに設定できる Layer の設定も、
- Groud, GroundDecoration は Ground レイヤー
- Walls, WallsShadow は Obstacles レイヤー
- Holes は Hole レイヤー
と、マップの種類ごとにレイヤーが分けられています。
※このレイヤーの設定は KoalaDungeon の設定です。
ゲームオブジェクトごとに設定できる Layer は Unity 標準のデータで、当たり判定の組み合わせを設定する際や、スクリプトが Layer プロパティを参照する処理などで用いられます。
次にこれらの種類別マップを表すゲームオブジェクト群が共通して持つコンポーネントを紹介します。
Tilemap コンポーネント
マップチップをマス目単位で配置する機能です。
プレイ中にマップチップの一部を変更する場合も Tilemap のメソッドを利用できます。
マス目のサイズや形状は、上位の Grid コンポーネントを持つオブジェクトから影響を受けます。
Info の中には、タイルマップに配置されているタイル (TileBase コンポーネント派生を持つ必要があります) のリストや、使われている Sprite 画像のリストがあります。
詳細は「Tilemap – Unity マニュアル」をご覧ください。
TilemapRenderer コンポーネント
同じゲームオブジェクト内の Tilemap コンポーネントの情報をもとに、タイルマップを描画する機能です。
Additonal Settings の Sorting Layer や Order in Layer を設定することで、描画順、見た目の前後関係を設定でき、マップを指定した順番で重ねて表示することができます。
詳細は「Tilemap Renderer – Unity マニュアル」をご覧ください。
今回はここまで
今回は、Grid と Tilemap の関係、 Tilemap のレイヤー設定や共通のコンポーネントについて紹介しました。
次回は Tilemap の種類別に持っている特有のコンポーネントについて紹介します。
コメント