Выбор одного из многих gameObject, C#

Есть десять одинаковых сфер и кубов. Нужно чтобы каждая сфера нашла свободный куб и следовала за ним, или не следовала, если того требуют обстоятельства, но при этом всегда знала что именно вот этот куб тот самый, а не вон тот неотесанный куб соседки.

99 показов
369369 открытий

Ну, вешаешь свои скрипты на куб и на сферу, у каждого указываешь булевой переменной занят ли он и тупо перебираешь все кубы.

Или создаёшь переменную GameObject, в которой null = объект без пары, и тупо перебираешь все кубы.

Или создаёшь тег "незанятые" и меняешь его у тех, которые заняты на, собственно, "заняты", пользуешься GameObject.FindGameobjectsWithTag и берёшь оттуда тупо первый.

Или создаёшь "контроллер", у которого есть пара list'ов, и который имеет доступ ко всем сферам и кубам — самый цивилизованный способ, про который я в курсе, но люди порой называют использование синглтрона "грязным паттерном".

Вариантов куча, в общем.

Ответить

синглтрон

Ответить

Синглтон называют антипаттерном, т.к. очень легко его тыкнуть там, где он не нужен. Кодеры, только узнавшие о нем, пихают его куда надо и не надо, из-за чего он и обрёл дурную славу.
При этом он есть незаменимым на серьезных проектах.

Ответить