Итак, я новичок в Unreal Engine 4 и подумал, что документация, размещенная на их веб-сайте, будет хорошей отправной точкой. Однако я борюсь с некоторыми вещами, касающимися части кодирования (у меня довольно приличные знания C ++). Вот фрагмент кода, с которым у меня проблемы:
void AFloatingActor::Tick( float DeltaTime )
{
Super::Tick( DeltaTime );
FVector NewLocation = GetActorLocation();
float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
NewLocation.Z += DeltaHeight * 20.0f; //Scale our height by a factor of 20
RunningTime += DeltaTime;
SetActorLocation(NewLocation);
}
Я не понимаю, как это работает. Я в значительной степени понимаю утверждения и все такое, но не понимаю, как это работает. Таким образом, тик - это функция, называемая каждый тик (кадр), а любые другие добавленные операторы предназначены для редактирования логики актера в каждом кадре. Как это работает? Не следует ли первый оператор "Super :: Tick (DeltaTime);" вызвать бесконечную рекурсию, поскольку нет базового (останавливающего) случая? Любая помощь будет оценена. Большое спасибо
Super
? - person user253751   schedule 24.04.2015Super::Tick
просто вызывает галочку в родительском классе. Вместо того, чтобы запоминать, как называется каждый родительский класс, UE4 определяетSuper
, поэтому виртуальные функции производных классов могут легко вызывать родительскую версию. - person rashmatash   schedule 24.04.2015