Если вы полный ноль в программировании - то забудьте на ближайшее время о юнити. Начинайте просто с ЯП, общих основ программирования, алгоритмизации, и всего такого.
Делать или нет - решать вам.
Давать тестовое на 1-2 дня - это нормально для мида.
Тестовое - это не "показать свои навыки между делом".
Но - если изначально на собесе про тестовое речи не шло - то это не очень гуд, конечно.
1) Формула расстояния (@yayashitoya почти правильно написал - там корень еще, либо радиус квадратичный)
2) Прям в юнити есть magnitude и sqrMagnitude - расстояние между Vector3
3) Ну можно еще коллайдеры (триггеры) использовать
Вариантов много:
1) Кинуть туда рейкаст/сферкаст/какие еще там касты есть.
2) Пройтись вообще по всем объектам и сравнить позиции
3) Написать свой контроллер позиций объектов и спросить у него
Не надо просто оперировать событиями юнити на уровне игровой логики.
OnDestroy/OnDisable нужны чтобы оперировать состоянием объекта как сущности движка, но не как игровой сущности.
Если вам нужно уничтожить лампочку - вызовите у нее СВОЙ метод Destroy.
Да по сути все что лежит в неймспейсе System - это и есть .Net. Это конечно не весь дотнет, но и систем - тоже дотнет. Так что если вы использовали List, Dictionary, Linq - то поздравляю - вы использовали .Net.
Ну а в чем проблема?
Инстанцируете геймобжект, и через addcomponent накидываете что вам нужно.
Вариант проще - создайте в эдиторе префаб, и инстанцируете уже его.
Смотря через что рендерится спрайт.
Если через Image (UI) или SpriteRenderer - то у этого компонента ест цвет.
Если не устраивает как он накладывается - пишем свой шейдер.
все просто.
ArgumentOutOfRangeException
startIndex is negative or greater than the length of this instance.
Вот отсюда - https://docs.microsoft.com/en-us/dotnet/api/system...
Чтобы вставить в позицию j (которая на первой итерации внешнего цикла будет от 0 до needText.Length) в строке maintext.Text уже должно быть достаточное количество символов - т.е. needText.Length.
Более того - вставка пустой строки не имеет смысла. Удаляйте через substring, например.
Не сильно понятно что вам нужно и главное почему.
Цикл так или иначе будет. Слово "найти" уже подразумевает перебор вариантов. Цикл может быть скрыт (Where из LINQ). Он может пройти не по всему массиву, а только до нахождения нужного количества (просто выходим из цикла когда нашли все что нужно.
Без цикла можно разве что заранее сложить нужные объекты куда то. Но по моему это не то что вам нужно...
Можно конечно отсортировать массив по parentRoomId и взять первые 3 элемента - но сортировка тоже цикл.
А почему не хотите хранить в игре? Ну ладно, это не сильно важно...
100 и 1000 загрузок выдержит легко какой нить VPS/VDS с правильно настроеным nginx для отдачи статики.
Про правила хранения - это какая то ерунда, а не хостинг.