7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

さぁ、UnityのTilemapを始めよう!5/8 ~Tilemap関連のコンポーネント編~

Last updated at Posted at 2018-12-02

さぁ、UnityのTilemapを始めよう!」 シリーズ、全8回の内の5回目です。

今回は「Tilemap関連のコンポーネント編」と題して、Tilemapに関連するコンポーネント、そしてゲームオブジェクトについて説明します。

前回は、「第4回 Tile について編」です。

Tilemap関連のコンポーネントの概要

まずは、Tilemap関連のゲームオブジェクトとコンポーネントを整理します。この記事では、Collider関連のコンポーネントには触れません。Colliderに関しては、後の「第7回 TilemapとCollider編」を参照してください。

シーン上にTilemap関連のゲームオブジェクト作成するためには、HierarchyウィンドウのCreateタブから、「2D Object > Tilemap」を選択します。そうすると、図のようにGridゲームオブジェクトとTilemapゲームオブジェクトという2つのゲームオブジェクトが生成されます。

tilemap_gameobjects.png

Gridゲームオブジェクトには、次のようにGridコンポーネントが付与されています。

grid.png

Tilemapゲームオブジェクトには、次のようにTilemapコンポーネントとTilemapRendererコンポーネントが付与されています。

tilemap.png

Gridゲームオブジェクトは、子ゲームオブジェクトとして複数のTilemapゲームオブジェクトをもつことができます。こうすることで、レイヤーごとに別のTilemapにマップを作成するというテクニックを使うことができます。

tilemap_layered_gameobjects.png

またお勧めはしませんが、次の画像のようにひとつのゲームオブジェクトにGridコンポーネント、Tilemapコンポーネント、TilemapRendererコンポーネントを付与してTilemapとして有効なゲームオブジェクトを作成することもできます。

all_in_one_objects.png

Gridコンポーネント

この節ではGridコンポーネントについて説明します。

Gridコンポーネントは、「UnityEngine.Grid」というクラスで、親クラスは「UnityEngine.GridLayout」です。Tilemapの拡張要素であるBrushというクラスでは、「Grid」ではなく、「GridLayout」が使われています。

Gridコンポーネントは次のような設定項目を持ちます。これらの設定項目は、Gridゲームオブジェクトのすべての子Tilemapゲームオブジェクトに対して適応されます。

  • Cell Size : セルの大きさ
  • Cell Gap : セルとセルの隙間の大きさ
  • Cell Swizzle : Tilemapの平面

Tilemapはデフォルト設定だとXY平面に対して作成されます。「Cell Swizzle」を変更することで、XZ平面に対しても作成することができるようになります。

TilemapRendererコンポーネント

この節ではTilemapRendererコンポーネントについて説明します。

TilemapRendererコンポーネントは、「UnityEngine.Tiilemaps.TilemapRenderer」というクラスで、親クラスは「UnityEngine.Renderer」です。

TilemapRendererコンポーネントは次のような設定項目を持ちます。

  • Sorting Layer
  • Order In Layer
  • Mask Interaction

このようにSpriteRendererコンポーネントと共通の設定項目を持ち、描画設定を司るコンポーネントです。これらの項目を設定することで、各TilemapそしてSpriteRenderer間の描画順序を制御することが可能です。

Tilemapコンポーネント

この節ではTilemapコンポーネントについて説明します。

Tilemapコンポーネントは、「UnityEngine.Tilemaps.Tilemap」というクラスで、親クラスは「UnityEngine.GridLayout」です。Tilemapコンポーネントは、どこの座標にどのTileアセットを保持しているのかという情報を保持する、キーとなるコンポーネントです。また色やアンカーなどの描画・配置に関する設定項目も持っています。

このクラスには、実行時にTileを追加・削除・更新するためのメソッドが数多く存在します。単純な背景や固定のプラットフォームとして使うのではなく、マップにギミックを持たせる場合、このクラスを参照し操作してください。

次回とシリーズ一覧

次回は、「第6回 Tileの描画編」です。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?