- Home /
TileMap GetCellCenter not working
Hey Everyone,
I have a tilemap, with a bunch of tiles drawn in a square. My goal is to get the world space position of each tile, so that I can spawn a 3D object on top of it.
Unfortunately I'm having a strange problem. I keep iterating through each tile in the map to get it's world space position, and the results I'm seeing make no sense. Basically it's showing multiple tiles having the exact same position in world space, so when I spawn objects for each one they wind up overlapping. This is in spite of the fact that the tiles are clearly apart from one another.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;
public class WorldGenerator : MonoBehaviour
{
Tilemap tileMap;
void Start()
{
tileMap = GetComponent<Tilemap>();
BoundsInt bounds = tileMap.cellBounds;
TileBase[] allTiles = tileMap.GetTilesBlock(bounds);
TileBase tile;
for(int x = 0; x < bounds.size.x; x++) {
for(int y = 0; y < bounds.size.y; y++) {
tile = allTiles[x + y * bounds.size.x];
if(tile != null) {
Vector3 tileWorldPosition = tileMap.layoutGrid.GetCellCenterWorld(new Vector3Int(x, 0, y));
print("Tile Coor: " + x + ", " + y);
print("World pos: " + tileWorldPosition);
}
}
}
}
}
When I run this code, this is the result I get:
Tile number: 1
Tile Coor: 3, 23
Block pos: (3.5, 0.5, 0.0)
Tile number: 2
Tile Coor: 3, 24
Block pos: (3.5, 0.5, 0.0)
Tile number: 3
Tile Coor: 3, 25
Block pos: (3.5, 0.5, 0.0)
And so on. Although the tiles are at obviously different coordinates, they are giving me the exact same position in world space.
Does anyone have any ideas as to what could be causing this? I've pored over the forums and documentation and can't find anything.
Your answer
Follow this Question
Related Questions
How to Change the position of a tile to the player position? 0 Answers
How can I determine what tile I'm clicking on 0 Answers
How to move two same Objects at the same place in different scenes? 1 Answer
Efficient method of storing coordinate values sequentially in an array 0 Answers
Tilemap2017 Access position & sprite of specific Tile in new Grid System 2dGame 1 Answer