#unity3d
Вопрос:
Я не могу понять вариант использования LateUpdate()
здесь. Если LateUpdate()
это называется после Update()
, то в чем разница между двумя приведенными ниже наборами кодов:
Первый набор кода
void Update(){
<some code>
<further code>
a();
}
void a(){
<some code for a>
}
Второй набор кода
void Update(){
<some code>
<further code>
}
void LateUpdate(){
<some code for a>
}
Являются ли оба приведенных выше кода одинаковыми или есть ли какая-либо разница/ преимущества при использовании LateUpdate()
вместо простого вызова метода в качестве последнего оператора update()
?
Ответ №1:
Функция LateUpdate вызывается после вызова всех функций обновления. Поэтому, если у вас есть 15 сценариев с функцией обновления и один с функцией LateUpdate-LateUpdate в этом сценарии не будет выполняться до тех пор, пока не будут вызваны остальные 15 обновлений. Таким образом, разница между вашими двумя примерами заключается в том, что в первом случае a()
выполняется сразу же как часть этого вызова обновления. Во втором, <some code for a>
не будет выполняться, пока не будет запущен каждый сценарий с функцией обновления.
Ссылка https://docs.unity3d.com/ScriptReference/MonoBehaviour.LateUpdate.html