虚幻引擎4:超级::滴答(增量时间)

Unreal Engine 4: Super::Tick ( DeltaTime )

本文关键字:时间 超级 引擎 滴答      更新时间:2023-10-16

所以我是虚幻引擎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);
}

我不明白这是如何工作的。我几乎得到了陈述,但我不明白它是如何工作的。所以tick基本上是一个称为每个tick(帧)的函数,添加的任何其他语句都是为了编辑每一帧的actor的逻辑。这是如何工作的?第一个语句"Super::Tick ( DeltaTime );"不应该引起无休止的递归,因为没有基本(停止)情况吗?任何帮助将不胜感激。非常感谢

这里没有递归 - 它调用的是Super::Tick,而不是它自己。

Super很可能是基类的 typedef,旨在让您在所有情况下都可以调用其函数,而不必记住它的实际名称。

因此,Super::Tick(DeltaTime);调用基类中的 Tick 函数(并将其作为参数传递DeltaTime)。如果您覆盖了一个函数,但仍希望发生"正常"内容以及您在覆盖中编写的内容,这将非常有用。