虚幻引擎图文笔记:常用的宏(一)UCLASS(5月25日 更新)

参考《Class Specifiers》

概要

UE4有一个管理游戏对象的强大系统。UObject是这个系统中所有对象的基类。UCLASS宏用于标记这些UObject的派生类,目的是把它们告知UObject管理系统。UCLASS的宏参数可以更加具体地指定该类型的各种行为。强调一下:UCLASS宏只能修饰UObject的子类。

以AActor的声明为例

UCLASS(BlueprintType, Blueprintable, config=Engine, meta=(ShortTooltip="An Actor is an object that can be placed or spawned in the world."))
class ENGINE_API AActor : public UObject
{
	GENERATED_BODY()
	//以下代码省略
}

类型说明符(Class Specifiers)

就是UCLASS()括号中可选的说明符

类说明符作用说明
Abstract注明这个类是抽象类,可以阻止用户通过“拖拽”的方式向场景里添加这个类的Actor
Blueprintable可以被蓝图类继承,该说明符会传递给派生类AActor已声明
NotBlueprintable不可被蓝图类继承,该说明符会传递给派生类
BlueprintType可用于蓝图的变量类型AActor已声明
Config=ConfigName指定默认的配置文件
Placeable可通过编辑器将此类放置到关卡、UI以及蓝图中,可继承
NotPlaceable不可通过编辑器将此类放置到关卡、UI以及蓝图中,可覆盖基类中的Placeable
Deprecated已弃用

元数据说明符(Metadata Specifiers)

就是例子中mata=后面的说明符

元数据说明符作用说明
DisplayName="Blueprint Node Name"蓝图中的节点名
ChildCanTick
ChildCannotTick

范例

  • UCLASS()
UCLASS()
class GAMECPP_API UMyObject : public UObject
{
	GENERATED_BODY()
	
};

此时不能创建派生自UMyObject蓝图类

注意:由于AActor类已经注明了UCLASS(Blueprintable),并且Blueprintable是可以传递给派生类的,所以派生自AActor的C++类即使标注为UCLASS()也是可以被蓝图类继承的

在这里插入图片描述

  • UCLASS(Blueprintable)
UCLASS(Blueprintable)
class GAMECPP_API UMyObject : public UObject
{
	GENERATED_BODY()
};

标注为UCLASS(Blueprintable)以后,就可以被蓝图类继承了

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发游戏的老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值