Уровень материала: 🐣 #junior 🐥 #middle
📝 Полезная статья, которая будет не лишней каждому. Сам ничего нового не узнал, но всё равно увлекло так, что прочитал на одном дыхании. Для новичков — неглубоко и не развёрнуто, но достаточно, чтобы подтолкнуть к правильным промтам для дальнейшего поиска.
Мне даже нечего прокомментировать или добавить. Просто делюсь просто хорошим контентом.
🔜Задето много важных моментов:
🟣Unity и .NET имеют различия в компиляции и исполнении кода.
🟣Есть особенности при использовании пакетов из
NuGet.🟣Немного сказано про сериализацию сцен и ассетов. Это очень важный момент, понимания которого не хватает многим начинающим разработчикам. Планирую насобирать материалов и сделать отдельный пост.
🟣Из-за отсутствия конструктора у
MonoBehaviour компоненты имеют неконсистентное состояние сразу после создания. Awake вызывается не сразу. Ещё и какой-нибудь Init тоже надо успеть вызвать вовремя. А то и, не дай бог, несколько Init'ов (не надо так).🟣Рассмотрены нюансы с созданием, сравнением и уничтожением объектов в Unity.
🟣Упомянуты особенности работы с многопоточностью и асинхронностью в Unity.
🟣Важный и редко упоминаемый момент: у Unity свой SynchronizationContext, который позволяет
async-коду выполняться в одном с Unity потоке. Поэтому в контексте Unity простое использование async/await не ведёт к многопоточности ❗️ Услышите обратное (а на курсах такое прогоняют) — бегите.
🟣В WebGL действительно не работают должным образом обычные
Task'и. Но, это было не упомянуто, зато работают UniTask. Awaitable тоже должны работать — правда, это уже я лично не проверял.🟣Оставлено много советов по оптимизации. Мельком, кратенько, но верно.
————————————
#unity #gamedev #development #engine #dotnet #csharp #геймдев #разработка #движок #рекомендация #статья
