另外注意:LoadClass<T>的模版名称,不能直接写UBlueprint,例如:LoadClass<UBlueprint>是错误的,创建蓝图时选择的是什么父类,则写对应的父类名,假如是Actor,那么要写成:LoadClass<AActor>,否则无法加载成功。 路径名也必须带_C后缀(LoadObject不需要带_C后缀),例如,蓝图路径是:Blueprint'/Game/Blueprints/MyBP....
另外有两个全局函数叫:StaticLoadObject()和StaticLoadClass(),应该是LoadObject<T>()和LoadClass<T>()的早期版本,前者需要手动强转,后者使用模版封装过,使用更方便,推荐使用后者
另外有两个全局函数叫:StaticLoadObject()和StaticLoadClass(),应该是LoadObject<T>()和LoadClass<T>()的早期版本,前者需要手动强转,后者使用模版封装过,使用更方便,推荐使用后者
LoadObject可直接返回资源有效对象指针 LoadClass返回操作类,非对象返回UClass类型指针 原型如下 Outer 帮助我们进行搜索范围锁定,可以填入同目录资源,如不存在填入空 Name 资源文件名,可以在编辑器中通过选择资源右键获取引用名,注意蓝图加载需要加入后缀"_C" 成员属性都加UPROPERTY() 即使不在蓝图,细节面板中编辑,也需...
另外注意:LoadClass<T>的模版名称,不能直接写UBlueprint,例如:LoadClass<UBlueprint>是错误的,创建蓝图时选择的是什么父类,则写对应的父类名,假如是Actor,那么要写成:LoadClass<AActor>,否则无法加载成功。 路径名也必须带_C后缀(LoadObject不需要带_C后缀),例如,蓝图路径是:Blueprint'/Game/Blueprints/MyBP....
LoadClass的模版名称,和上面FClassFinder一样,不能直接写UBlueprint。 LoadClass路径规范也和上面的FClassFinder一样,带_C后缀或去掉前缀。 另外有两个函数叫:StaticLoadObject()和StaticLoadClass(),是LoadObject()和LoadClass()的早期版本,前两者需要手动强转和填写冗杂参数,后两者则是前两者的封装,使用更方便,...
UClass* Test = LoadClass<AActor>(NULL, TEXT("Blueprint'/Game/Blueprints/MapPathBrush_BP.MapPathBrush_BP_C'")); 官方还没出文档,只能先看代码注释: Cpp代码 // Load an object. template< class T > inline T* LoadObject( UObject* Outer, const TCHAR* Name, const TCHAR* Filename=nullptr, ...
若我们只以"_C"为后缀,即调用【LoadObject 函数】并传入路径/Game/TestBlueprint.TestBlueprint_C进行加载,我们加载到的是【蓝图产生类】,底层类型也是【UBlueprintGeneratedClass 类】,它保存在【UBlueprintCore (UBlueprint的基类)】的【GeneratedClass】字段中: ...
("FObjectFinder<AActor> Blueprint Success"));}// 加载方式2staticConstructorHelpers::FClassFinder<UClass>BpClass(TEXT("Blueprint'/Game/StarterContent/Blueprints/Blueprint_CeilingLight.Blueprint_CeilingLight_C'"));if(BpClass.Succeeded()){StaticLoadBPClass=BpClass.Class;UE_LOG(LogTemp,Log,TEXT(...
序列化到磁盘之后,UE4是将序列化的「二进制」数据以.uasset后缀的文件保存起来。使用LoadObject可以重新将uasset文件反序列化成UObject。 所以目前来看,UE4这套序列化是完全够用的。 就用它了! 1.2 开干!(与遇到的问题) 序列化尝试 搜索互联网可得此文《UE4 – Save a texture as a new asset》。