UE4学习笔记: Gameplay Classes
来源:互联网 发布:linux网络重启 编辑:程序博客网 时间:2024/04/29 07:59
增加类
编辑器中有一个类向导, 可以生成类所需要的文件和基础宏
头文件
由于UE4对C++做了扩展, 实现了如序列化反射等特性, 跟Qt的做法类似: 在代码中加入一些宏关键字, 在编译期间生成相应的C++代码. 因此, 对于每个类来说, 都有会生成一个ClassName.generated.h的文件
类声明
UCLASS([specifier, specifier, ...], [meta(key=value, key=value, ...)])class ClassName : ParentName{ GENERATED_UCLASS_BODY()}
UCLASS可以指定一说明符, 用于描述类的行为, 类似C#
- 功能相关
- Abstract: 抽象基类, 无法实例化
- Config: 指定配置文件, 跟UE3一样
- Const
- ConvertsionRoot: 子类只能cast到这一级
- CustomConstructor: 不生成默认的构造函数
- DefaultToInstanced
- DependsOn
- Deprecated: 不会被序列化或保存
- MinimalAPI/RequiredAPI: 只暴露指定函数给其它模块, 减少编译时间
- NonTransient
- PerObjectConfig
- Within: 只能用在指定类里
- Property Window相关
- AutoExpandCategories/AutoCollapseCategories
- AdvancedClassDisplay
- CollapseCategories/DontCollapseCategories
- EditInlineNew: 可以在属性窗口中创建
- HideCategories/HideDropdown
- HideFunctions/ShowFunctions
- Blueprint相关
- Blueprintable/NotBlueprintable
- BlueprintType
- Editor相关
- ClassGroup: ActorBrowser里的分组
- NotPlaceable
- Placeable
类实现
需要在cpp中加入IMPLEMENT_CLASS宏
构造函数
AMyClass::AMyClass(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer){}
ObjectInitializer用于从archetype或CDO中初始化属性.
ATimelineTestActor::ATimelineTestActor(const class FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer){ // Structure to hold one-time initialization struct FConstructorStatics { ConstructorHelpers::FObjectFinder<UStaticMesh> Object0; FConstructorStatics() : Object0(TEXT("StaticMesh'/Game/UT3/Pickups/Pickups/Health_Large/Mesh/S_Pickups_Base_Health_Large.S_Pickups_Base_Health_Large'")) { } }; static FConstructorStatics ConstructorStatics; // Property initialization StaticMesh = ConstructorStatics.Object0.Object;}
ConstructorStatics用于初始化复杂类型, 避免每次构造产生额外性能开销. 常用于Asset引用, Class引用, Name类型等
0 0
- UE4学习笔记: Gameplay Classes
- UE4学习笔记: Gameplay Classes
- UE4学习笔记: Gameplay Classes
- UE4学习笔记: Gameplay Classes
- UE4入门学习3:GamePlay框架
- UE4之GamePlay
- UE4学习笔记: Functions
- UE4学习笔记: Properties
- UE4学习笔记: Replication
- UE4 学习笔记
- UE4学习笔记: Functions
- UE4学习笔记: Properties
- UE4学习笔记: Replication
- UE4学习笔记
- UE4学习笔记
- UE4学习笔记
- UE4学习笔记(一):初识UE4
- UE4 main classes explanation
- LeetCode 83. Remove Duplicates from Sorted List
- sh中执行cd语句报 不存在该文件或目录
- python学习笔记-正则表达式提取指定关键字
- URAL 1627 Join(生成树计数)
- eclipse中maven插件配置
- UE4学习笔记: Gameplay Classes
- BZOJ 3626 [LNOI2014]LCA
- android developer tiny share-20160713
- ubuntu安装QGIS(一)
- Android 动态添加View布局
- Emacs入门系列:3分钟学会Emacs基本操作
- 20160713常规赛总结
- 留言板
- 贪心 Saving HDU