我是 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(帧)的函数,添加的任何其他语句都是用来编辑每一帧中演员逻辑的。这是如何工作的?第一个语句“Super :: Tick(DeltaTime);”不应该导致无限递归吗,因为没有基本(停止)情况吗? 任何帮助将不胜感激。 非常感谢
Super::Tick
简单地调用父类中的 tick 函数。为了避免记住每个类的父类名称,UE4 定义了Super
,使得派生类的虚函数可以轻松调用父类版本。 - rashmatash