目录
Automatic Property Initialization
Automatic Updating of References
Run-Time Type Information and Casting
一,UObject Instance Creation
创建对象新实例的方法;
NewObject
NewObject() 是最简单的UObject工厂方法;它接受一个可选的外部对象和类,并用自动生成的名称创建一个新实例;
template< class T >
T* NewObject
(
UObject* Outer = (UObject*)GetTransientPackage(),
UClass* Class = T::StaticClass()
)
- Outer,可选,一个待创建对象的外部
UObject; - Class,可选,一个待创建对象类的
UClass; - 返回值,指向生成实例(指定类)指针;
NewNamedObject
NewNamedObject() 是在 NewObject() 上扩展,通过为新实例指定一个名称、对象标记、一个要指定为参数的模板对象;
template< class TClass >
TClass* NewNamedObject
(
UObject* Outer,
FName Name,
EObjectFlags Flags = RF_NoFlags,
UObject const* Template = NULL
)
- Outer,一个待创建对象的外部
UObject; - Name,一个为新对象的
名称的FName; - Flags,可选,描述新对象的
FObjectFlags枚举值; - Template,可选,创建新对象时用作模板的
UObject; - 返回值,指向生成实例(指定类)指针;
ConstructObject
为获得完全的灵活性,可以使用 ConstructObject() 函数来创建 UObjects 的新实例;此函数调用 StaticConstructObject() ,它分配对象,执行 ClassConstructor ,并执行任何初始化,如加载配置属性,加载本地化属性和实例化组件;
template< class T >
T* ConstructObject
(
UClass* Class,
UObject* Outer = (UObject*)GetTransientPackage(),
FName Name = NAME_None,
EObjectFlags SetFlags = RF_NoFlags,
UObject const* Template = NULL,
bool bCopyTransientsFromClassDefaults = false,
struct FObjectInstancingGraph* InstanceGraph = NULL
)
- Class,一个待创建对象类的
UClass; - Outer,可选,一个待创建对象的外部
UObject; - Name,可选,一个为新对象的
名称的FName; - SetFlags,可选,描述新对象的
FObjectFlags枚举值; - Template,可选,创建新对象时用作模板的
UObject; - bCopyTransientsFromClassDefaults,可选,
- FObjectInstancingGraph,可选,一个
布尔值,决定是否从类默认对象(而不是传入的原型指针)复制瞬态属性;如果true,使用类默认对象的瞬态; - 返回值,指向生成实例(指定类)指针;
Object Flags
EObjectFlags 枚举用于快速而简洁地描述对象;有各种的标志来描述对象的类型、垃圾收集如何处理它、对象在其生命周期中所处的阶段等等;还有特殊的全掩码或无掩码和预定义的标记组;
| Flag | Value | Description |
| RF_Public | 0x00000001 | 对象在包含它的包外部是可见的; |
| RF_Standalone | 0x00000002 | 即使没有被任何东西引用,对象也会被保留以供编辑; |
| RF_Native | 0x00000004 | 对象是本地对象,仅用于 UClass 对象; |

最低0.47元/天 解锁文章
2152

被折叠的 条评论
为什么被折叠?



