Есть Grid, в дочках у которого несколько Tilemap (я так понял, появилась эта механика совсем недавно). На гриде болтается скрипт, по задумкам на сами тайлмапы скрипты вешать не хочется.
Требуется определять события мыши на конкретном тайлмапе или гриде в целом (второе предпочтительнее).
С наскока пытался бросить коллайдер на тайлмапы и использовать хендлеры вроде IPointerEnterHandler, но обломался - не свистит. Ни со скриптом на самом тайлмапе, ни на гриде.
Пробовал бросить рей вместо хендлеров - аналогично...
Единственное что вышло - в апдейте просто определять ячейку под курсором если мыши нажата... Фигня, не подходит, хочется именно какую-никакую событийную модель.
Синтаксис:
Используется csharp
void Update() {
Vector3 camWorldPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
var cellPosition = grid.WorldToCell(camWorldPosition);
guiLayerMap.ClearAllTiles();
guiLayerMap.SetTile(cellPosition, hoverTile);
/// TODO научиться кликать нормально
if (Input.GetMouseButton(0)) {
baseLayerMap.SetTile(cellPosition, tile);
}
}
Vector3 camWorldPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
var cellPosition = grid.WorldToCell(camWorldPosition);
guiLayerMap.ClearAllTiles();
guiLayerMap.SetTile(cellPosition, hoverTile);
/// TODO научиться кликать нормально
if (Input.GetMouseButton(0)) {
baseLayerMap.SetTile(cellPosition, tile);
}
}
Подскажите, как это реализовать?