はじめに
この記事では Tilemap クラスでよく使う関数をまとめました
目次
- はじめに
- 目次
- AddTileFlags
- BoxFill
- ClearAllTiles
- CompressBounds
- ContainsTile
- GetCellCenterLocal
- GetCellCenterWorld
- GetColliderType
- GetColor
- GetInstantiatedObject
- GetSprite
- GetTile
- GetTileFlags
- GetTilesBlock
- GetUsedTilesCount
- HasTile
- RefreshAllTiles
- RefreshTile
- RemoveTileFlags
- SetColliderType
- SetColor
- SetTile
- SetTileFlags
- SetTiles
- SetTilesBlock
- SwapTile
- 関連記事
AddTileFlags
指定された位置のタイルにフラグを追加します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); tilemap.AddTileFlags( position, TileFlags.LockAll ); } }
BoxFill
指定された範囲を指定されたタイルで塗りつぶします
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { public TileBase tile; private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); tilemap.BoxFill( position, tile, -5, -5, 5, 5 ); } }
ClearAllTiles
配置されているタイルをすべて削除します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); tilemap.ClearAllTiles(); } }
CompressBounds
タイルマップの原点とサイズをタイルが配置されている領域に合わせて調整します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); tilemap.CompressBounds(); } }
ContainsTile
指定されたタイルが配置されている場合 true を返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { public TileBase tile; private void Awake() { var tilemap = GetComponent<Tilemap>(); print( tilemap.ContainsTile( tile ) ); } }
GetCellCenterLocal
ローカル座標系におけるセルの中心位置を返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 1, 1, 0 ); print( tilemap.GetCellCenterLocal( position ) ); } }
GetCellCenterWorld
ワールド座標系におけるセルの中心位置を返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 1, 1, 0 ); print( tilemap.GetCellCenterWorld( position ) ); } }
GetColliderType
指定された位置のタイルの当たり判定の種類を返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); print( tilemap.GetColliderType( position ) ); } }
GetColor
指定された位置のタイルの色を返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); print( tilemap.GetColor( position ) ); } }
GetInstantiatedObject
指定された位置のタイルのゲームオブジェクトを返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); print( tilemap.GetInstantiatedObject( position ) ); } }
GetSprite
指定された位置のタイルのスプライトを返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); print( tilemap.GetSprite( position ) ); } }
GetTile
指定された位置のタイルを返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); print( tilemap.GetTile( position ) ); } }
GetTileFlags
指定された位置のタイルのフラグを返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); print( tilemap.GetTileFlags( position ) ); } }
GetTilesBlock
指定された範囲に存在するタイルを配列で返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var bounds = new BoundsInt( -3, -3, 0, 6, 6, 1 ); var list = tilemap.GetTilesBlock( bounds ); print( list.Length ); foreach ( var n in list ) { print( n ); } } }
GetUsedTilesCount
使用されているタイルの数を返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); print( tilemap.GetUsedTilesCount() ); } }
HasTile
指定された位置にタイルが存在する場合 true を返します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); print( tilemap.HasTile( position ) ); } }
RefreshAllTiles
すべてのタイルに関連するコンポーネントの状態を更新します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); tilemap.RefreshAllTiles(); } }
RefreshTile
指定された位置のタイルに関連するコンポーネントの状態を更新します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); tilemap.RefreshTile( position ); } }
RemoveTileFlags
指定された位置のタイルからフラグを削除します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); tilemap.RemoveTileFlags( position, TileFlags.LockAll ); } }
SetColliderType
指定された位置のタイルの当たり判定の種類を設定します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); tilemap.SetColliderType( position, Tile.ColliderType.Sprite ); } }
SetColor
指定された位置のタイルの色を設定します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); tilemap.SetColor( position, Color.red ); } }
SetTile
指定された位置のタイルを設定します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { public TileBase tile; private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); tilemap.SetTile( position, tile ); } }
SetTileFlags
指定された位置のタイルのフラグを設定します
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { private void Awake() { var tilemap = GetComponent<Tilemap>(); var position = new Vector3Int( 0, 0, 0 ); tilemap.SetTileFlags( position, TileFlags.LockAll ); } }
SetTiles
配列を使用して指定された位置のタイルを設定します
positionArray と tileArray の長さは等しい必要があります
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { public TileBase[] tileArray; private void Awake() { var tilemap = GetComponent<Tilemap>(); var positionArray = new [] { new Vector3Int( 0, 0, 0 ), new Vector3Int( 1, 0, 0 ), new Vector3Int( 2, 0, 0 ), }; tilemap.SetTiles( positionArray, tileArray ); } }
SetTilesBlock
指定された範囲をタイルの配列で塗りつぶします
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { public TileBase[] tileArray; private void Awake() { var tilemap = GetComponent<Tilemap>(); var bounds = new BoundsInt( 0, 0, 0, 3, 1, 1 ); tilemap.SetTilesBlock( bounds, tileArray ); } }
SwapTile
指定されたタイルを入れ替えます
using UnityEngine; using UnityEngine.Tilemaps; public class Example : MonoBehaviour { public TileBase changeTile; public TileBase newTile; private void Awake() { var tilemap = GetComponent<Tilemap>(); tilemap.SwapTile( changeTile, newTile ); } }