Я делаю игру на основе сетки.
В этой игре вы можете размещать здания, стены, дороги.
Когда что-то помещается в сетку, я присваиваю идентификатор ячейки этому идентификатору объекта. Пока все хорошо, все это работает.
Моя проблема возникает, когда мне нужно Битовая маска мои стены / дороги (размещенные с помощью перетаскивания мышью).
В настоящее время так, как я сделать битовую маску, я проверяю все соседние cells
на соответствие и соответственно устанавливаю правильную модель. То есть, если есть совпадение на запад и север, я создаю изгиб.
Моя проблема возникает, когда я кладу стену поверх уже занятого cells
. Я все еще хочу отобразить стену графически (окрашено красным), но я не могу перезаписать c то, что в данный момент находится в этом cell
.
Это означает, что моя битовая маскировка не будет работать, потому что стена не находится в Фактически grid
, это только в мировом пространстве.
Стены устанавливают ячейки на id 0
, а дома устанавливают ячейки на id 1
. Я не могу перезаписать идентификатор в домашней ячейке, поэтому битовая маскировка (правильно) в конечном итоге сломается.
Как можно управлять таким сценарием?
Ячейка:
public class Cell
{
public int x, z;
public int id;
public GameObject go
}