Ввод контроллера Unreal C++: вращение по рысканью

Я настраиваю камеру своего игрового персонажа через С++, и я наткнулся на это, и хотя это работает, я не понимаю, почему код использует DeltaTime. Что на самом деле делает функция GetDeltaSeconds?

void AWizardCharater::LookX(float Value)  
{   
    AddControllerYawInput(Sensitivity * Value * GetWorld()->GetDeltaSeconds());  
}  

Вот ссылка на API: https://docs.unrealengine.com/latest/INT/API/Runtime/Engine/GameFramework/APawn/AddControllerYawInput/index.html

Спасибо


person に か    schedule 23.08.2016    source источник


Ответы (1)


Использование дельта-времени, умноженной на некоторое значение чувствительности, является стандартным методом, используемым в играх для обеспечения постоянной скорости движения, независимой от частоты кадров.

Рассмотрим следующий код без использования дельта-времени:

AddControllerYawInput(1);  

Если бы у вас была частота кадров 10 кадров в секунду, вы бы делали 10 градусов в секунду. Если частота кадров увеличится до 100 кадров в секунду, вы будете делать 100 градусов в секунду.

Использование дельта-времени делает движение последовательным независимо от частоты кадров, поскольку время между кадрами уменьшается с увеличением частоты кадров, что замедляет движение.

person Droppy    schedule 23.08.2016
comment
хорошо объяснил. Большое тебе спасибо. - person に か; 23.08.2016