lepard
@lepard
function selfDevelopment() { selfDevelopment() }

Какое из решений более рациональное?

1. Как правильнее сделать в ранере с объектами, которые находятся в List?
а) Блоки по выходу с экрана делаются не активными, а когда отобразить объект в новом месте, то просто проверять в цикле, и неактивный блок передвигать и делать активным.
б) Создать итератор для этих объектов и просто передвигать их.
Просто второй вариант мне не нравится тем, что будет много переменных, а первый делает хоть небольшую, ну нагрузку на приложение, когда делает блок активным/неактивным. Какой из этих способов будет лучше?

2. Можно ли список запихнуть в массив? Что-бы если в GameObject[] передавалось N объектов, я делал массив и в каждой ячейке хранил по 10-20 экземпляров данного объекта? Или есть способ более разумный?
  • Вопрос задан
  • 249 просмотров
Решения вопроса 2
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
1. Сделайте два списка: список активных блоков и список неактивных. Когда блок уходит за экран, деактивируйте его и переносите из списка активных в список неактивных, а когда нужен новый блок, делайте наоборот. Для пула неактивных объектов лучше использовать очередь, чтобы "дать остыть" выключенным объектам, не все юнитёвые компоненты дружат с быстрым включением-выключением. Если при включении-выключении есть заметная задержка, то можете заменить его на телепортацию объектов куда-нибудь подальше, где их не видно, либо можете выключать только рендереры и аудио-источники.

2. Можно, просто объявляете тип переменной как List<GameObject>[], но, скорее всего, удобнее будет работать с List<List<GameObject>>. Если и так не удобно, то можете сделать класс-обёртку и будет у вас что-нибудь вроде List<Pool>.
Ответ написан
TheTalion
@TheTalion
У объекта вводишь переменную "активна"(или как ты там активность проверяешь) и проходишь по всему листу находя не активный объект и двигаешь его, если нужно. Если неактивного объекта нет, но новый объект нужен, то создаешь новый.

Но для такого лучше использовать Stack, а не List.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы