Unity Удаление объектов (игра на подобие match 3)

513
30 января 2017, 15:57

Ситуация такая: пишу игру, на подобие match3, те 3 в ряд и ума не приложу как правильно сделать удаление ячейки и появление новых.

Сама игра в моем понимании создается примерно так:

  1. Создаем родительский объект, на него вешаем компонент grid (сетка)
  2. Создаем префаб (ячейку), которую в последствии делаем дочерним компонентом.
  3. На каждую ячейку вешаем id, чтобы знать позицию ячейки, и value, значение ячейки
  4. По нажатию получаем эти данные, затем по второму нажатию сравниваем эти значения и выполняем нужные действия

Проблема в том, что не понимаю как сделать удаление по id и как заставить ячейки, которые выше сдвинуться на позицию вниз. Пытался сделать переприсвоением значений высших ячеек низшим используя массив всех объектов (ячеек), но получилось так, что внутри кода (внутри созданного массива gameobject) оно менялось, а вернуть это на игровую сцену не получилось.

В общем, у кого какие есть идеи по удалению, может кто-то раньше сталкивался и может что-то посоветовать. Работы пока не много проделал, так что могу начать заново, если найду толковый алгоритм.

код создания ячеек в родительском объекте

for (int i = 0; i<sellcount; i++) {
    GameObject tmpSell = Instantiate (sellItem) as GameObject;
    tmpSell.transform.SetParent (sellGroup, false);
}
Answer 1
  1. Хранить массив ссылок на ячейки. (Ячейки лучше сразу в редакторе расставить )

  2. Не удалять ячейки, а допустим менять им спрайты(смотря что у тебя).

  3. Ячейка должна уметь возвратить тип "рубина" который в ней. И на основе этих данных и массива (из пункта 1) производить все расчеты и сдвиги.

  4. Никаких id не нужно. Есть индекс ячейки в массиве - это и есть твой id(i,j).

ПС: вопрос абстрактный. Это и есть твоя работа, как программиста, находить решение таких проблем.

READ ALSO
textbox.Text=stack.Pop() не работает

textbox.Text=stack.Pop() не работает

Каким образом работает stackpop() ? Хочу реализовать функцию Undo

309
Химия 8 класс контрольная [требует правки]

Химия 8 класс контрольная [требует правки]

В воде 150г раствором 20г гидроксида натрия рассчитайте массовую долю гидроксид натрия в получении раствора вычислите количество молекул...

297