我试图了解Tilemap,特别是我希望能够使用Tilemap的x,y索引获得Vector3位置。我看到您可以从Tilemap中获取一个TileBase数组,但是其中似乎没有任何实际数据可以提供此信息。
我还看到有一个TileData类,但是我不确定如何将TileBase转换为TileData,以便可以从中检索位置。
// This code block was gathered from another answer.
BoundsInt bounds = tilemap.cellBounds;
TileBase[] allTiles = tilemap.GetTilesBlock(bounds);
for (int x = 0; x < bounds.size.x; x++) {
for (int y = 0; y < bounds.size.y; y++) {
TileBase tile = allTiles[x + y * bounds.size.x];
if (tile != null) {
Debug.Log("x:" + x + " y:" + y + " tile:" + tile.name);
// How do I get the transform.position of the tile from
// the x, y indexes?
} else {
Debug.Log("x:" + x + " y:" + y + " tile: (null)");
}
}
}
请参阅上面的我的评论
“如何从x,y获取图块的transform.position 索引?”
答案 0 :(得分:0)
使用此功能从Tile获取TileData:
https://docs.unity3d.com/ScriptReference/Tilemaps.Tile.GetTileData.html
如果您从TileBase派生了自己的类,请覆盖此函数并返回TileData:
https://docs.unity3d.com/ScriptReference/Tilemaps.TileBase.GetTileData.html