snezhok_13 писал(а):Ну вот опять. Перейдите к конкретике, какой именно вопрос говно? Я уже писал даже, у вас одна из типичных реакций: "вопросы для джунов".
Окей.
•Рассказать о yield return, yield break и Coroutine в Unity
•В каком порядке вызываются события MonoBehaviour в процессе рендеринга кадра? Зачем нужны отдельные Update и FixedUpdate?
Одна и та же опера. На реальном собеседовании спрашивают про потоки и асинхронные операции, могут начать очень издалека типа "чем отличается управляемый код от неуправляемого", и туда входят короутины, апдейты, потоки, инвоки и прочие вещи. Нужно рассказать что и как работает. Вопрос чисто джуновский. А вот рендеринг вы туда зря впихнули. Такой вопрос может сильно запутать т.к. "процесс рендера" с апдейтом связан только посредством фпс, но вот люди которые раньше кодили на directX SDK, или которые работают с рендер комманд буфером на низком уровне, или просто любят заморочки в шейдерах - они 100% не так поймут вопрос и ответят тебе про этапы самого рендеринга т.е. всякие буферизации, отсечения поверхностей и тому подобное. Поэтому этот вопрос чем-то напоминает iq тесты, где только у среднячка есть шансы ответить на него так, как это подразумевал спрашивающий.
•Назовите функции преобразования из локальных координат в мировые и обратно (для точки и для направления). Как работают эти функции? Связано ли их время работы с расположением/вложенностью объекта в иерархии? Реализуйте собственные extension-методы для Transform, которые будут давать такой же результат, как и настоящие.
Опять же. Если спрашивают про линейную алгебру - то это будут вопросы о скалярном произведении, углах обзора, вектора вращения, смысла дот-а, правило правой руки и т.д. Никому не интересно услышать название стандартной функции. Вопрос про время работы вообще не понятно для чего задан.
•Необходимо интерполировать вектор из A в B за определенный промежуток времени. Каким образом реализовать?
Слишком изи. Не понятна вообще логика подбора вопросов. Вместо "расскажите про собак, кошек, крыс", вопросы звучат как "расскажите про собак, шерсть кошек в период весны, предателей и разносчиках чумы"
•Что такое drawcall, batching? Какие возможности предоставляет Unity?
Дравколы, батчиннг - стандартный, простой джуновский вопрос. А вот "Какие возможности предоставляет Unity?" - слишком абстрактный вопрос ни о чём.
•Что бы Вы изменили в данном коде для увеличения быстродействия? Как можно еще улучшить этот код? В чем его проблема?
Используется javascript
public class Test : MonoBehaviour {
void Start () {
gameObject.AddComponent();
TComponent t = gameObject.GetComponent<TComponent>();
t.DoSomething();
t.variable = 5;
}
void Update () {
TComponent t = gameObject.GetComponent<TComponent>();
t.DoSomething();
t.variable = 5;
}
}
Начнём с того что AddComponent() должен содержать название самого компонета. После всех исправлений должно выглядеть так:
Используется csharp
public class Test : MonoBehaviour {
void Awake()
{
TComponent t = gameObject.AddComponent<TComponent>();
}
void Update ()
{
t.DoSomething(5);
}
}
Хотя, если бы задача была более ясна, то уверен что можно было бы вообще убрать Update()
•Какие способы вызвать функцию из компонента, вы знаете/используете? Плюсы и минусы данных способов (Варианты: SendMessage, SendMessageUpwards, BroadcastMessage, вызов через GetComponent (GetComponent().SomeMethod() );
Последний раз я использовал SendMessage, BroadcastMessage 4 года назад. Вопрос морально устарел т.к. никто сейчас не использует эти методы. Про GetComponent вопрос достаточно стандартный.
•В чем отличия делегатов от стандартных C# events, UnityEvent и EventSystem? Что, где и для чего применяется?
Каким макаром сюда затесалась EventSystem? Если в корне слова есть "Event", это не значит что нужно их всех собрать в одну кучу. То ли вопрос с подвохом, то ли спрашивающий человек не отличает дверной ручки от пишущей ручки.
•Прокомментируйте разницу в нескольких способах получить первый элемент коллекции
Я то отвечу на вопрос, но каким образом знание .NET Framework связано с вопросами к unity3d?
•Напишите unit-test,
В геймдеве не принято делать юнит тесты. Только в очень редких случаях.
Senior Unity 3D
•Какие расширения редактора вы писали?
•Для чего используются классы SerializedObject, SerializedProperty, ScriptableObject, AssetDatabase?
•С какими проблемами производительности вы сталкивались и каким образом их решали?
Первый и третий вопрос на джуна-мидла. Второй вопрос на мидла.
Для Senior-а вопросов не существует! Senior предполагает широкие знания, к примеру, умение работать с MySQL, С++, php, написание шейдеров и т.д.///
По C#/.Net вопросы более-менее нормальные. Не ответил бы на второй т.к. деревья и прочая блевотина это удел тех кто работает с высоконагруженными базами данных. В геймдеве эти знания даром не нужны. Разве что вы работаете над ММОRPG. Про partial классы и методы тоже не уверен что ответил бы правильно.