- 模版类以T作为前缀,比如TArray,TMap,TSet
- UObject派生类都以U前缀
- AActor派生类都以A前缀
- SWidget派生类都以S前缀
- 抽象接口以I前缀
- 枚举以E开头
- bool变量以b前缀,如bPendingDestruction
- 其他的大部分以F开头,如FString,FName
- typedef的以原型名前缀为准,如typedef TArray FArrayOfMyTypes;
- 在编辑器里和C#里,类型名是去掉前缀过的
几乎所有的对象都继承于UObject,UObject为它们提供了基础的垃圾回收,反射,元数据,序列化等,相应的,就有各种”UClass”的派生们定义了属性和行为的数据。
在UE中,3D世界是由Actors构建起来的,而Actor又拥有各种Component,之后又有各种Controller可以控制Actor(Pawn)的行为。
Actor并不只是3D中的“表示”,一些不在世界里展示的“不可见对象”也可以是Actor。Actor的概念在UE里其实不是某种具象化的3D世界里的对象,而是世界里的种种元素,用更泛化抽象的概念来看,小到一个个地上的石头,大到整个世界的运行规则,都是Actor.
TSet<UActorComponent*> OwnedComponents
保存着这个Actor所拥有的所有Component,一般其中会有一个SceneComponent作为RootComponent。
拖拽到场景中的StaticMeshActor对象必须要将Details-Transform-Mobility选择成Moval之后才能在c++的程序中对其进行位置旋转等等的控制。
在类的Beginplay函数中对Actor进行SetActorLocation,不会立刻起作用,只有在Tick函数执行了之后才会起作用。