UE C++程序结构
时间: 2023-11-14 14:09:38 浏览: 44
好的,UE C++程序结构主要包括以下几个部分:
1. 头文件(Header Files):包含类的声明、函数原型、宏定义等信息。
2. 源文件(Source Files):包含类的实现、函数的具体实现等代码。
3. 模块定义文件(Module Definition File):定义模块的导出函数和变量等信息。
4. 配置文件(Configuration Files):包含项目的配置信息,如编译选项、链接选项等。
5. 资源文件(Resource Files):包含程序所需的资源,如图标、位图、音频等。
在UE中,C++程序通常是以插件的形式存在,因此还需要添加插件描述文件(Plugin Descriptor File)和插件构建文件(Plugin Build File)。
相关问题
UE C++ 蓝图 数据结构
UE C++蓝图数据结构是通过结构体和类来定义的。可以通过将现有的蓝图结构体引用,手动替换成新的C++结构体变量来实现。首先,在.h文件中声明结构体,并使用USTRUCT(BlueprintType)宏进行标记。然后使用UPROPERTY宏定义结构体的成员变量。接下来,在.cpp文件中使用GENERATED_BODY()宏生成结构体的代码。同样的,可以创建一个继承于UObject的C++类来定义蓝图数据结构。
示例代码如下:
```cpp
// .h文件
#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "QuestInfo.generated.h"
USTRUCT(BlueprintType)
struct BLUEPRINTSTOCPP_API FQuestInfo
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FString Name;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FName QuestId;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Progress;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 ProgressTotal;
};
UCLASS()
class BLUEPRINTSTOCPP_API UQuestInfo : public UObject
{
GENERATED_BODY()
};
```
ue c++ 结构体
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 ]