c++ - 虚幻引擎 4:Super::Tick ( DeltaTime )

标签 c++ unreal-engine4

所以我是虚幻引擎 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) .如果您覆盖了一个函数,但仍然希望“正常”的事情以及您在覆盖中编写的内容发生,这将很有用。

关于c++ - 虚幻引擎 4:Super::Tick ( DeltaTime ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29849164/

相关文章:

C++ 通过引用局部变量传递

c++ - 概括/重构代码

c++ - BOOST_SPIRIT_DEBUG_NODE 无法在变体节点上编译

c++ - 从模板派生

c++ - 如何在虚幻蓝图中创建等效的 Unity LookAt?

c++ - 虚幻 C++ Controller 输入 : Yaw Rotation

c++ - 返回 tic tac toe 的 minimax 算法中的最佳 Move

c++ - 如何让玩家相机管理器的相机连接到角色的 Spring 臂上?

c++ - 如何在代码中使用 Unreal 4 ProceduralMeshComponent 类?

c++ - 如何从我的 UE4 项目界面打开 FBX 文件