0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゲーム実行中に動的にTilemapへTileを配置する

Posted at

TilemapはUnity公式の2Dマップエディタです。

ゲーム実行中でも、TilemapはSetTileメソッドにより、動的にTileを配置できます。

Tileを配置したい場所を引数position(Vector3Int型)に、配置したいTileをtile(TileBase型)に渡します。

コード例を示します。

using UnityEngine;
using UnityEngine.Tilemaps;

public class TilemapController : MonoBehaviour
{
    [SerializeField] Tilemap tilemap;
    [SerializeField] TileBase tile;
    [SerializeField] Vector3Int position;

    void Start()
    {
        tilemap.SetTile(position, tile);
    }
}

SetTileメソッドの他にも、Tilemapクラスには

  • SetTileメソッドのTileChangeData構造体を引数にとるオーバーロード
  • SetTilesメソッド(2つのオーバーロードあり)
  • SetTileBlockメソッド

があります。

また、Tileを削除したい場合は、削除したい場所に引数Tileにnullを渡してください。

using UnityEngine;
using UnityEngine.Tilemaps;

public class TilemapController : MonoBehaviour
{
    [SerializeField] Tilemap tilemap;
    [SerializeField] TileBase tile;
    [SerializeField] Vector3Int position;

    void Start()
    {
        tilemap.SetTile(position, null);
    }
}

すべてのTileを取り除いて良いのであれば、ClearAllTilesメソッドを使います。

using UnityEngine;
using UnityEngine.Tilemaps;

public class TilemapController : MonoBehaviour
{
    [SerializeField] Tilemap tilemap;
    [SerializeField] TileBase tile;
    [SerializeField] Vector3Int position;

    void Start()
    {
        tilemap.ClearAllTiles();
    }
}

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?