【发布时间】:2015-07-03 03:45:44
【问题描述】:
所以我是 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);
}
我不明白这是如何工作的。我几乎得到了所有的陈述,但我不明白它是如何工作的。所以tick基本上是一个称为每个tick(帧)的函数,添加的任何其他语句都是编辑每帧actor的逻辑。这是如何运作的?第一条语句不应该是“Super::Tick (DeltaTime);”吗?由于没有基本(停止)情况而导致无限递归? 任何帮助,将不胜感激。 非常感谢
【问题讨论】:
-
为什么会是无限递归?它没有调用自己,所以它根本不是递归的。
Super是什么? -
Super::Tick只是调用父类中的滴答声。 UE4 定义了Super,而不是记住每个类的父类被调用的内容,因此派生类的虚函数可以轻松调用父版本。 -
@rashmatash 哦,我现在明白了,非常感谢!
标签: c++ unreal-engine4