ue c++ 结构体
时间: 2023-08-17 11:13:11 浏览: 146
UE C++中的结构体是一种用于定义自定义数据类型的重要工具。在UE中,结构体可以用于存储和组织数据,并且可以与蓝图进行交互。
在C++中创建结构体时,可以使用USTRUCT()宏来标记结构体,并使用GENERATED_USTRUCT_BODY()宏来生成反射数据,以便蓝图可以访问结构体的成员变量。例如,可以创建一个简单的结构体如下所示:
```cpp
USTRUCT()
struct FMyFirstStruct
{
GENERATED_USTRUCT_BODY()
UPROPERTY()
FName Name = FName("");
UPROPERTY()
float exp = 0;
};
```
如果需要与蓝图进行交互,可以使用BlueprintType宏来标记结构体,并使用EditDefaultsOnly和BlueprintReadWrite属性来指定蓝图中的编辑权限。例如:
```cpp
USTRUCT(BlueprintType)
struct FMyFirstStruct
{
GENERATED_USTRUCT_BODY()
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category="Default")
FName Name = FName("");
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category="Default")
float exp = 0;
};
```
在使用结构体时,可以像使用其他数据类型一样声明和初始化结构体变量,并访问其成员变量。例如:
```cpp
FMyFirstStruct MyStruct;
MyStruct.Name = FName("John");
MyStruct.exp = 100.0f;
```
需要注意的是,在C++中使用结构体时,通常需要添加GENERATED_USTRUCT_BODY()宏,以便UE可以生成反射数据供蓝图使用。另外,结构体的成员变量可以使用UPROPERTY宏进行标记,以便在蓝图中进行编辑和访问。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* *2* [UE C++中使用结构体](https://blog.csdn.net/jfengsky/article/details/121018860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [UE4 C++ 之 结构体](https://blog.csdn.net/qq_43021038/article/details/127225179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文