UE5【C++】 UPROPERTY和UFUNCTION介绍
发布人:shili8
发布时间:2024-12-24 01:18
阅读次数:0
**UE5 C++ UPROPERTY 和 UFUNCTION 的介绍**
在 Unreal Engine5 中,`UPROPERTY` 和 `UFUNCTION` 是两个非常重要的宏,它们用于定义类成员变量和函数。在本文中,我们将详细介绍这些宏的使用方法、特点以及示例代码。
**1. UPROPERTY**
`UPROPERTY` 宏用于定义类成员变量。它可以用来标记一个类成员变量,使其能够被序列化(Serialization)和反射(Reflection)。序列化是指将数据转换为二进制流的过程,而反射是指在运行时动态地访问类成员变量的过程。
**使用方法**
要使用 `UPROPERTY` 宏,需要在类成员变量前面加上这个宏。例如:
cppUCLASS() class MYGAME_API MyActor : public AActor{ GENERATED_BODY() public: UPROPERTY(EditAnywhere, Category = "My Actor") int32 MyInt; UFUNCTION(BlueprintCallable) void MyFunction(); };
在这个例子中,`MyInt` 是一个类成员变量,它被标记为 `UPROPERTY`。这个宏的参数 `EditAnywhere` 表示该变量可以在编辑器中修改,而 `Category = "My Actor"` 表示该变量属于 "My Actor" 类别。
**特点**
* 可以用来定义类成员变量* 支持序列化和反射* 可以设置属性(如可编辑性、分类等)
**2. UFUNCTION**
`UFUNCTION` 宏用于定义类函数。它可以用来标记一个类函数,使其能够被蓝图调用。
**使用方法**
要使用 `UFUNCTION` 宏,需要在类函数前面加上这个宏。例如:
cppUCLASS() class MYGAME_API MyActor : public AActor{ GENERATED_BODY() public: UPROPERTY(EditAnywhere, Category = "My Actor") int32 MyInt; UFUNCTION(BlueprintCallable) void MyFunction(); // ... private: UFUNCTION(BlueprintCallable) void MyPrivateFunction(); };
在这个例子中,`MyFunction` 和 `MyPrivateFunction` 是两个类函数,它们被标记为 `UFUNCTION`。`BlueprintCallable` 参数表示这些函数可以在蓝图中调用。
**特点**
* 可以用来定义类函数* 支持蓝图调用**总结**
`UPROPERTY` 和 `UFUNCTION` 宏是 Unreal Engine5 中非常重要的宏,它们用于定义类成员变量和函数。在本文中,我们详细介绍了这些宏的使用方法、特点以及示例代码。通过阅读本文,开发者可以更好地理解这些宏的作用,并在实际项目中灵活应用它们。
**参考**
* Unreal Engine5 文档:[UPROPERTY]( />* Unreal Engine5 文档:[UFUNCTION](