Вопросы для собеседования по Unity
• Сетевой фреймворк
• Мультиплеер на юнити
• Технические программы для сценаристов, разработчиков и тд
• ECS-фреймворки (morpeh)
• Работа с ui, спрайтами, vfx, sfx
• Git
• Web view
• Настройка cookie
• Попробовать создать разные жанры
• ParticleSystem
• Animator
• Понимание общих принципов и подходов в real-time rendering (shading, lighting, particle effects, post-process effects, etc.)
• Shader graph, amplify
• After effects, Maya, blender, 3dsmax
Вопросы для лучшего понимания юнити:
https://habr.com/ru/articles/672168/
Что такое Game Object? Что такое scene?
Что такое canvas? Где и для чего его нужно использовать?
[ ] Что такое MonoBehaviour? От чего он наследуется?
• MonoBehaviour - это базовый класс, от которого наследуются все скрипты.
• Наследуется от класса Behaviour. Behaviour наследуется от Component. Component наследуется от Object.
[ ] Расскажите Жизненный цикл MonoBehaviour.
[ ] В каком порядке вызываются события MonoBehaviour в процессе рендеринга кадра?
• OnPreCull: Вызывается до того, как камера отсечёт сцену. Отсечение определяет, какие объекты будут видны в камере. OnPreCull вызывается прямо перед тем, как начинается отсечение.
• OnBecameVisible/OnBecameInvisible: Вызывается тогда, когда объект становится видимым/невидимым любой камере.
• OnWillRenderObject: Вызывается один раз для каждой камеры, если объект в поле зрения.
• OnPreRender: Вызывается перед тем, как камера начнёт рендерить сцену.
• OnRenderObject: Вызывается, после того, как все обычные рендеры сцены завершатся. Вы можете использовать класс GL или Graphics.DrawMeshNow, чтобы рисовать пользовательскую геометрию в данной точке.
• OnPostRender: Вызывается после того, как камера завершит рендер сцены.
• OnRenderImage(только в Pro версии): Вызывается после завершения рендера сцены, для возможности пост-обработки изображения экрана.
• OnGUI: Вызывается несколько раз за кадр и отвечает за элементы интерфейса (GUI). Сначала обрабатываются события макета и раскраски, после чего идут события клавиатуры/мышки для каждого события.
• OnDrawGizmos Используется для отрисовки гизмо в окне Scene View в целях визуализации.
[ ] Зачем нужны отдельные Update и FixedUpdate?
[ ] Что такое deltaTime и fixedDeltaTime? Отличия между ними.
[ ] Для чего нужны корутины и какую проблему они решают?
[ ] Какие компоненты позволяют работать с физикой?
[ ] Какие знаете типы камер и параметры для их настройки?
[ ] Зачем нужен аниматор?
[ ] Можно ли дописывать логику к состояниям аниматора?
[ ] Для чего нужны нормали?
[ ] Что такое mesh?
[ ] Какие данные в себе хранит меш?
[ ] Опыт работы с шейдерами. Приходилось ли писать шейдеры?
[ ] Что такое drawcall, batching? Какие возможности предоставляет Unity?
[ ] Для чего используется асетс бандл?
[ ] Какие инструменты для диагностики проблем производительности вы знаете(profiler, deep profiling, frame debugger, memory profiling, profiling on device)?
[ ] Unity Web Requests. Что это? Приходилось ли работать с клиент-серверным взаимодействием? Если да, то расскажите про этот опыт.
[ ] Есть ли опыт работы с нативным слоем? Android Studio, XCode.
[ ] Есть ли опыт интеграции SDK(реклама, аналитика, конфиги, БД, пуш уведомления)?
[ ] Какие типы данных вы знаете?
[ ] Что такое Nullable-тип?
[ ] Что такое Array, List, HashSet, Dictionary? Приведите примеры использования этих структур данных.
[ ] Какая разница между Array, List?
[ ] Как работает Dictionary, почему он работает быстрее чем List?
[ ] Можно ли хранить разные типы данных в объекте класса System.Array?
[ ] Что такое Key-value структуры?
[ ] Что такое enum flags?
[ ] Что такое ООП?
[ ] Основные принципы ООП и рассказать про каждый принцип с примерами.
[ ] Как вы понимаете SOLID (СОЛИД)?
[ ] Какие знаете паттерны? Расскажите про каждый из перечисленных.
[ ] Как можно получить доступ к private переменной из другого класса?
[ ] Чем абстрактный класс отличается от интерфейса?
[ ] В чем различие между классом и структурой?
[ ] Почему в структуре нет конструктора по умолчанию?
[ ] Может ли класс реализовать два интерфейса, у которых объявлены одинаковые методы? Каким образом?
[ ] Какая разница между перегрузкой и переопределением методов?
[ ] Что такое Boxing и Unboxing?
[ ] Что означает модификатор virtual?
[ ] Что обозначает ключевое слово “virtual” для метода или свойства?
[ ] Что такое immutable object? Какие преимущества дает использование immutable object?
[ ] Как создать собственный immutable-тип?
[ ] Чем отличается event от delegate?
[ ] Что такое замыкание?
[ ] Кому доступны переменные с модификатором protected на уровне класса?
[ ] Можно ли наследовать переменные с модификатором private?
[ ] Когда использовать StringBuilder, а когда string? Как работает StringBuilder?
[ ] В чем разница между throw ex; и throw;?
[ ] В чём разница между ключевыми словами final, finally, finalize?
[ ] Какая разница между checked и unchecked Exception ?
[ ] Что такое дженерики? Какие проблемы они решают?
[ ] Приведите пример использования Graphs и Trees.
[ ] Что такое коллизии и как с ними бороться?
[ ] В чем разница между IEnumerable и IQueryable?
[ ] Что такое рефлексия? Расскажите где она используется и для чего.