Про Unity от .NET-разработчика

Про Unity от .NET-разработчика

Уровень материала: 🐣 #junior 🐥 #middle
Полезная статья, которая будет не лишней каждому. Сам ничего нового не узнал, но всё равно увлекло так, что прочитал на одном дыхании. Для новичков — неглубоко и не развёрнуто, но достаточно, чтобы подтолкнуть к правильным промтам для дальнейшего поиска.

Мне даже нечего прокомментировать или добавить. Просто делюсь просто хорошим контентом.

Задето много важных моментов:

  • Unity и .NET имеют различия в компиляции и исполнении кода.
  • Есть особенности при использовании пакетов из NuGet.
  • Немного сказано про сериализацию сцен и ассетов. Это очень важный момент, понимания которого не хватает многим начинающим разработчикам. Планирую насобирать материалов и сделать отдельный пост.
  • Из-за отсутствия конструктора у MonoBehaviour компоненты имеют неконсистентное состояние сразу после создания. Awake вызывается не сразу. Ещё и какой-нибудь Init тоже надо успеть вызвать вовремя. А то и, не дай бог, несколько Init'ов (не надо так).
  • Рассмотрены нюансы с созданием, сравнением и уничтожением объектов в Unity.
  • Упомянуты особенности работы с многопоточностью и асинхронностью в Unity.
  • Важный и редко упоминаемый момент: у Unity свой SynchronizationContext, который позволяет async-коду выполняться в одном с Unity потоке. Поэтому в контексте Unity простое использование async/await не ведёт к многопоточности ❗ Услышите обратное (а на курсах такое прогоняют) — бегите.
  • В WebGL действительно не работают обычные Task'и. Но, это было не упомянуто, зато работают UniTask. Awaitable тоже должны работать — правда, это уже я лично не проверял.
  • Оставлено много советов по оптимизации. Мельком, кратенько, но верно.

————————————

55
2 комментария

Мы с пацанами код для юнити пишем нейронками и не страдаем ерундой

1

Мы с мужиками пишем код для юнити джунами 👽

4
[]