UE宏的使用
时间: 2023-07-11 13:19:17 浏览: 98
UE宏是一种预处理指令,可以用于在编译时生成代码。在UE中,宏通常用于快速定义常量、函数、条件编译等。
下面是一个关于如何使用UE宏的例子:
1. 定义一个常量
在蓝图或C++代码中,可以使用UE宏定义一个常量:
```
#define MAX_HP 100
```
这样,以后在代码中就可以使用MAX_HP代替100了,如:
```
int current_hp = MAX_HP;
```
2. 定义一个函数
可以使用UE宏定义一个函数,如:
```
#define ADD(a, b) ((a) + (b))
```
这样,以后在代码中就可以直接调用ADD函数了,如:
```
int result = ADD(2, 3);
```
在编译时,ADD函数会被替换成((2) + (3)),即5。
3. 条件编译
可以使用UE宏实现条件编译,如:
```
#define PLATFORM_WINDOWS
#ifdef PLATFORM_WINDOWS
// Windows平台的代码
#else
// 非Windows平台的代码
#endif
```
这样,在编译时会根据PLATFORM_WINDOWS是否被定义来选择编译哪一部分代码。
以上就是UE宏的基本使用方法。需要注意的是,UE宏的使用应该谨慎,避免滥用,否则会导致代码难以维护和调试。
相关问题
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 ]
ue4的UFUNCTION
UE4的UFUNCTION是一个宏,用于声明成员函数为UObject或蓝图函数库的函数。在函数声明的上方使用UFUNCTION宏,可以为函数添加一些属性和元数据。具体的语法如下:
UFUNCTION([specifier1=setting1, specifier2, ...], [meta(key1="value1", key2, ...)]) ReturnType FunctionName([Parameter1, Parameter2, ..., ParameterN1=DefaultValueN1, ParameterN2=DefaultValueN2]) [const];
其中,specifier1、specifier2等是一些函数属性,例如BlueprintCallable表示该函数可以在蓝图中调用。而meta(key1="value1", key2, ...)则是一些元数据,用于描述函数的一些额外信息。比如,使用DeprecatedFunction元数据可以标记一个函数为已弃用的函数,DeprecationMessage用于提供关于替换已弃用函数的说明。引用和提供了具体的宏使用示例。
在4.18.0版本及以后的引擎中,使用了DeprecatedFunction标记的函数将无法在蓝图中被找到。这意味着,任何对被标记为已弃用的函数的蓝图引用都会导致编译警告。引用提供了一个使用了DeprecatedFunction和DeprecationMessage的函数示例。
总而言之,UFUNCTION是UE4中用于声明成员函数为UObject或蓝图函数库的宏,通过它可以给函数添加属性和元数据,包括一些功能性属性和用于描述函数的额外信息的元数据。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)