# 变量类型 ## 根据前缀划分 1. **F**:表示该类是一个“Foundation Class”,或者叫做“基础类”。这些类一般都不包含任何的UObject功能,可以认为它是“裸”的C++类。常见的有FVector(三维向量)、FRotator(旋转)、FColor(颜色)等。 2. **U**:表示该类是一个“Unreal Class”,或者叫做“虚幻类”。这些类是UObject的子类,是Unreal引擎的基础类型,拥有垃圾回收、反射等特性。常见的有UObject(所有类的基类)、UActorComponent(所有Actor组件的基类)、USkeletalMeshComponent(可动的网格组件)等。 3. **A**:表示该类是一个“Actor Class”,或者叫做“演员类”。这些类是所有游戏世界中的物体的基类,都继承自AActor。常见的有AActor(所有演员的基类)、APawn(可被玩家控制的演员)、ACharacter(有一定行为的演员)等。 4. **T**:表示该类是一个“Template Class”,或者叫做“模板类”。这些类是模板类,可以用于创建动态数组(TArray)、哈希集(TSet)、键值对集(TMap)等。 5. **I**:表示该类是一个“Interface Class”,或者叫做“接口类”。这些类定义了一些方法,其他类可以实现这些方法,以达到代码重用和解耦合的目的。 ## 根据功能划分 **1. 基础类型:** - `int32`:一个 32 位的整数。 - `float`:一个浮点数。 - `bool`:一个布尔值,其值可以是 true 或 false。 - `FString`:一个字符串。与标准的 C++ 字符串不同,FString 用于存储文本,并且可以方便地进行操作,如连接、分割等。 **2. UObject 派生类:** 所有的游戏对象都派生自基类 `UObject`。以下是一些常见的 `UObject` 派生类: - `AActor`:这是所有在场景中的游戏对象的基类。例如,角色(`ACharacter`)、静态网格体(`AStaticMeshActor`)、摄像机(`ACameraActor`)等都是 `AActor` 的派生类。 - `UActorComponent`:这是所有附着在游戏对象上的组件的基类。例如,视觉组件(如 `UMeshComponent`)、物理组件(如 `UPrimitiveComponent`)、行为组件(如 `UInputComponent`)等都是 `UActorComponent` 的派生类。 **3. 容器类:** - `TArray<T>`:一个动态数组,可以包含任何类型的元素。 - [[TMap|TMap<K,V>]]:一个映射,包含键值对。 - `TSet<T>`:一个集合,包含唯一的元素。 **4. 其他引擎特定类型:** - `FVector`:表示三维空间中的点或向量。 - `FRotator`:用于表示旋转。 - `FQuat`:代表四元数,也用于表示旋转,但不会遇到诸如万向锁问题的困扰。 - `FTransform`:包含位置、旋转(使用四元数)和缩放信息。