TopDownEngine KoalaDungeon のマップの仕組み(2)

前回は、Unity のアセット TopDown Engine のサンプルゲームの一つ KoalaDungeonマップ表示するための Grid コンポーネントタイルマップの新規作成の方法を紹介しました。

TopDownEngine KoalaDungeon のマップのゲームオブジェクト群

TopDownEngine KoalaDungeon のマップのゲームオブジェクト群

今回は Grid ゲームオブジェクトの下位にある Tilemap 群について紹介します。
※ Unity は 2021.3.14f1、TopDown Engine は 3.1.1 です。主人公のキャラクター画像はぴぽや倉庫様のキャラクターチップを使っています。

Grid と Tilemap の関係

前回紹介した Grid コンポーネントは、指定された形状やサイズで連続したマス目を作ります。
そして Grid の下位に配置された Tilemap 群はそのマス目に応じてマップチップを配置していきます。

Grid は Tilemap 共通のマス目を管理し、 Tilemap はそのマス目単位で配置されたマップチップ群を管理する役割です。

Unity Grid と Tilemap 群の関係

Unity Grid と Tilemap 群の関係

実際のマップのデザインTilemap, TilemapRenderer コンポーネントを持つゲームオブジェクトで行います。
KoalaDungeon では、壁などの当たり判定も、障害物だけを配置した Tilemap, TilemapRenderer を持つゲームオブジェクトで行います。

種類別マップの共通コンポーネント

Gound(地面) や Walls(壁) などの種類別マップを表すゲームオブジェクトが持つコンポーネントは、当たり判定の有無などにより持っているコンポーネントが異なります。

また、ゲームオブジェクトごとに設定できる Layer の設定も、

  • Groud, GroundDecorationGround レイヤー
  • Walls, WallsShadowObstacles レイヤー
  • HolesHole レイヤー

と、マップの種類ごとにレイヤーが分けられています。
※このレイヤーの設定は KoalaDungeon の設定です。

ゲームオブジェクトごとに設定できる LayerUnity 標準のデータで、当たり判定の組み合わせを設定する際や、スクリプトが Layer プロパティを参照する処理などで用いられます。

種類別マップを表すゲームオブジェクトのレイヤー設定と共通コンポーネント

種類別マップを表すゲームオブジェクトのレイヤー設定と共通コンポーネント

次にこれらの種類別マップを表すゲームオブジェクト群が共通して持つコンポーネントを紹介します。

Tilemap コンポーネント

マップチップをマス目単位で配置する機能です。
プレイ中にマップチップの一部を変更する場合も Tilemap のメソッドを利用できます。
マス目のサイズや形状は、上位の Grid コンポーネントを持つオブジェクトから影響を受けます。

KoalaDungeon Ground の Tilemap コンポーネント

KoalaDungeon Ground の Tilemap コンポーネント

Info の中には、タイルマップに配置されているタイル (TileBase コンポーネント派生を持つ必要があります) のリストや、使われている Sprite 画像のリストがあります。

詳細は「Tilemap – Unity マニュアル」をご覧ください。

TilemapRenderer コンポーネント

同じゲームオブジェクト内の Tilemap コンポーネントの情報をもとに、タイルマップを描画する機能です。

KoalaDungeon Ground の TilemapRenderer コンポーネント

KoalaDungeon Ground の TilemapRenderer コンポーネント

Additonal SettingsSorting LayerOrder in Layer を設定することで、描画順、見た目の前後関係を設定でき、マップを指定した順番で重ねて表示することができます。

詳細は「Tilemap Renderer – Unity マニュアル」をご覧ください。

今回はここまで

今回は、Grid と Tilemap の関係Tilemapレイヤー設定共通のコンポーネントについて紹介しました。
次回Tilemap種類別に持っている特有のコンポーネントについて紹介します。

参照サイト Thank You!

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました