Unreal UCLASS常用的类标记宏

  1. BlueprintType,使当前类可以作为蓝图中的类型使用。新建一个继承UObject的C++类CustomObject:

UObject默认是无法作为蓝图中的类型使用的,打开关卡蓝图,声明一个CustomObject变量:

可以看到,这里无法声明CustomObject类型的变量,我们为CustomObject添加BlueprintType标记宏:

### 设置宏定义的方法 在 Unreal Engine 5 (UE5) 中,宏定义通常位于头文件中,并且这些宏被广泛应用于简化代码编写过程并增强功能。对于特定于项目的自定义宏定义,推荐的做法是在项目源代码目录下的适当位置创建或修改现有的 `.h` 文件。 #### 使用 `UCLASS()` 和其他常用宏 当涉及到像 `UCLASS()` 这样的特殊宏时,在声明新的蓝图时会在相应的头文件里使用此宏[^2]: ```cpp // MyActor.h #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "MyActor.generated.h" UCLASS() class MYPROJECT_API AMyActor : public AActor { GENERATED_BODY() public: // ... }; ``` 这段代码展示了如何利用 `UCLASS()` 来标记一个新的可由蓝图使用的 C++ 型。 #### 自定义宏定义的位置和方法 如果开发者想要引入自己的宏,则应该遵循以下指导原则: - **全局范围内的宏**:可以放置在一个公共的预编译头文件(通常是 `PCHIncludes.h` 或似的名称),这样能确保在整个工程内都可以访问到该宏。 - **局部作用域中的宏**:应尽可能靠近其实际用途处定义;例如,在某个特定模块的私有头文件中定义仅限于此上下文使用的宏。 为了保持良好的实践习惯,建议将所有宏放在单独命名空间下以防止潜在冲突,并提供清晰文档说明每个宏的作用及其预期行为。 #### 添加新宏的例子 假设要添加一个名为 `MY_MACRO` 的简单调试工具,可以在合适的地方加入如下定义: ```cpp #define MY_MACRO(x) do { \ UE_LOG(LogTemp, Log, TEXT("Debug info: %s"), *FString::Printf(TEXT(#x)));\ } while(0) ``` 上述例子展示了一个简单的日志记录宏,它接受单个参数并将之转换成字符串形式打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值