Есть десять одинаковых сфер и кубов. Нужно чтобы каждая сфера нашла свободный куб и следовала за ним, или не следовала, если того требуют обстоятельства, но при этом всегда знала что именно вот этот куб тот самый, а не вон тот неотесанный куб соседки.
Ну, вешаешь свои скрипты на куб и на сферу, у каждого указываешь булевой переменной занят ли он и тупо перебираешь все кубы.
Или создаёшь переменную GameObject, в которой null = объект без пары, и тупо перебираешь все кубы.
Или создаёшь тег "незанятые" и меняешь его у тех, которые заняты на, собственно, "заняты", пользуешься GameObject.FindGameobjectsWithTag и берёшь оттуда тупо первый.
Или создаёшь "контроллер", у которого есть пара list'ов, и который имеет доступ ко всем сферам и кубам — самый цивилизованный способ, про который я в курсе, но люди порой называют использование синглтрона "грязным паттерном".
Вариантов куча, в общем.
синглтрон
Синглтон называют антипаттерном, т.к. очень легко его тыкнуть там, где он не нужен. Кодеры, только узнавшие о нем, пихают его куда надо и не надо, из-за чего он и обрёл дурную славу.
При этом он есть незаменимым на серьезных проектах.
Создать скрипт-менеджер, выдающий свободный куб.
На куб и сферу повесить ещё один скрипт, где будет иметься ссылка на объект, с которым они связаны.
Таким образом, менеджер должен выдавать любой из объектов, не имеющих ссылку на свою пару.
Понятное дело, на этапе инициализации менеджер должен себе записать все объекты обоих типов
Чет прям вопросы на грани понимания основ что ли 🤔
Автор тебе бы заголовок поменять. А то я подумал, что у тебя стоит выбор между разными версиями C#
Эмм, может тебе List нужен? https://docs.microsoft.com/ru-ru/dotnet/api/system.collections.generic.list-1?view=netcore-3.1