Вы не можете просто сделать
Collider2D hitCollider = Physics2D.OverlapPoint(Camera.main.ScreenToWorldPoint(pos));
int posx = (int) pos.x;
int posy = (int) pos.y ;
int posz = (int) pos.z ;
Это просто приведение мировой позиции к (int)
, поэтому удаление десятичных дробей.
Что SetTile
ожидает, что в качестве параметра достаточно индексов соответствующих плиток в пределах указанных Grid
ячеек.
Unity автоматически создает Grid GameObject и устанавливает его в качестве родителя дочернего Tilemap GameObject.
Через этот компонент Grid
(Tilemap.layoutGrid
) вы можете получить индексы, используя Grid.WorldToCell
например, возможно
tilemap.SetTile(tilemap.gridLayout.WorldToCell(hitCollider.transform.position), null));
Печатается на смартфоне, но я надеюсь, что идея проясняется