您当前的位置: 首页 > 

开发游戏的老王

暂无认证

  • 3浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

开发游戏的老王 发布时间:2020-05-25 14:53:57 ,浏览量:3

参考《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注明这个类是抽象类,可以阻止用户通过“拖拽”的方式向场景里添加这个类的ActorBlueprintable可以被蓝图类继承,该说明符会传递给派生类AActor已声明NotBlueprintable不可被蓝图类继承,该说明符会传递给派生类BlueprintType可用于蓝图的变量类型AActor已声明Config=ConfigName指定默认的配置文件Placeable可通过编辑器将此类放置到关卡、UI以及蓝图中,可继承NotPlaceable不可通过编辑器将此类放置到关卡、UI以及蓝图中,可覆盖基类中的PlaceableDeprecated已弃用 元数据说明符(Metadata Specifiers)

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

元数据说明符作用说明DisplayName="Blueprint Node Name"蓝图中的节点名ChildCanTickChildCannotTick 范例
  • 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)以后,就可以被蓝图类继承了

在这里插入图片描述

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0389s