所以我在这里查看虚幻文档: https://docs.unrealengine.com/latest/INT/Programming/QuickStart/3/index.html
在第2步中,他们在.h文件中创建了一个 float RunningTime ,并在第3步的cpp文件中使用它,据我所知。我不明白的是在cpp文件中,他们创建了 FVector NewLocation 和浮动DeltaHeight ,但他们没有将这些添加到.h。
为什么.h中的RunningTime和其余的都没有? .h文件中的数据有什么特别之处?
谢谢
编辑:
我理解范围方面。我很抱歉不清楚。我的困惑是没有在任何地方设置RunningTime。它在tick函数中用于cpp,但值是......什么?我在虚幻引擎中运行它,它可以工作,但什么是(theValueOf)RunningTime?
答案 0 :(得分:0)
您指出的本教程的目的是创建类AFloatingActor
,然后可以实例化它。 RunningTime
变量是类的接口的一部分,因为它被定义为public
public:
float RunningTime;
可以在课外访问它(查看公共/私有类成员和方法)。
与此相反,FVector NewLocation
和float DeltaHeight
是仅在方法AFloatingActor::Tick
中使用的局部变量。因为它们只在这个成员(函数)中使用,而在类中没有其他任何地方,它们都不是类接口的一部分,所以它们不需要是类变量。
如果它们位于.h文件中(因此是一个类变量),那么它们将在实例化类时创建,并且只要该类保持活动状态即可。但是没有必要这样做,因此它们是在调用AFloatingActor::Tick
时创建的,它们会发挥作用然后被破坏,因为它们是该方法的局部变量。
这也是第二个问题的答案" .h文件中的数据有什么特别之处?"。
总结一下: 在类的.h文件中,您编写类接口。它由
组成在类的.cpp文件中编写类实现(每种方法的实现)。
有关详细信息,请查看示例here。