硬引用
TObjectPtr,TSubCLassOf等等,硬引用在对象初始化时就加载进内存,一些暂时用不到的资源会占用内存;
软引用
TSubObjectPtr,TSoftClassPtr等,在资源被使用的时候才被加载进内存,随时灵活加载,减小加载负担,缩短启动事件。
TSoftObjectPtr.Get() 如果被引用资源存在于内存中,将返回这个资源对象;
TSoftObjectPtr.IsPending() 方法可检查资源是否已准备好可供访问;
FORCEINLINE bool IsPending() const
{
return Get() == nullptr && ObjectID.IsValid();
}
即只有在资源还没有被加载进内存,且该指针指向一个有效的Object才返回true。
TSoftObjectPtr.IsValid 用于检查该资源是否被加载到内存中
特别注意:IsValid不能用于判断软引用指针是否为空,或者是否指向一个有效资源;Isvalid只在资源有效且被加载到内存中时才返回true

TSoftObjectPtr.IsNull 用于检查软引用指针是否指向有效的Object对象
FORCEINLINE bool IsNull() const
{
return !ObjectID.IsValid();
}
可以用LoadSynchronous将资源加载到内存中。

4038

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



