LoadObject可直接返回资源有效对象指针 LoadClass返回操作类,非对象返回UClass类型指针 原型如下 Outer 帮助我们进行搜索范围锁定,可以填入同目录资源,如不存在填入空 Name 资源文件名,可以在编辑器中通过选择资源右键获取引用名,注意蓝图加载需要加入后缀"_C" 成员属性都加UPROPERTY() 即使不在蓝图,细节面板中编辑,也需...
另外注意:LoadClass<T>的模版名称,不能直接写UBlueprint,例如:LoadClass<UBlueprint>是错误的,创建蓝图时选择的是什么父类,则写对应的父类名,假如是Actor,那么要写成:LoadClass<AActor>,否则无法加载成功。 路径名也必须带_C后缀(LoadObject不需要带_C后缀),例如,蓝图路径是:Blueprint'/Game/Blueprints/MyBP....
另外注意:LoadClass<T>的模版名称,不能直接写UBlueprint,例如:LoadClass<UBlueprint>是错误的,创建蓝图时选择的是什么父类,则写对应的父类名,假如是Actor,那么要写成:LoadClass<AActor>,否则无法加载成功。 路径名也必须带_C后缀(LoadObject不需要带_C后缀),例如,蓝图路径是:Blueprint'/Game/Blueprints/MyBP....
另外注意:LoadClass<T>的模版名称,不能直接写UBlueprint,例如:LoadClass<UBlueprint>是错误的,创建蓝图时选择的是什么父类,则写对应的父类名,假如是Actor,那么要写成:LoadClass<AActor>,否则无法加载成功。 路径名也必须带_C后缀(LoadObject不需要带_C后缀),例如,蓝图路径是:Blueprint'/Game/Blueprints/MyBP....
另外注意:LoadClass<T>的模版名称,不能直接写UBlueprint,例如:LoadClass<UBlueprint>是错误的,创建蓝图时选择的是什么父类,则写对应的父类名,假如是Actor,那么要写成:LoadClass<AActor>,否则无法加载成功。 路径名也必须带_C后缀(LoadObject不需要带_C后缀),例如,蓝图路径是:Blueprint'/Game/Blueprints/MyBP....
这里说的静态加载指的是必须在构造函数中完成的加载方式,动态加载值得是可以在Runtime期间加载的方式,UE4源码里面,前者其实是对后者的一层封装,即FObjectFinder()是对LoadObject()的封装。But,FClassFinder()不是对LoadClass()的封装,FClassFinder()内部调用的是LoadObject()。
LoadClass与StaticLoadClass、LoadObject与StaticLoadObject这几个函数的联系与区别。 同步加载注意大资源可能会引起的卡顿和掉帧。 需要路径不能出错,蓝图则需要加上_C。 ConstructorHelpers 特点 同样是需要完整路径的一种加载方式。 只能在构造函数里面使用,非构造函数中使用会引起Error。这适用于某些情况,例如要使用这个...
鼠标移到对应的资源上,就可以查看路径了: 或者直接右键: 大钊老师整理的路径规则: 同时,如果使用LoadClass()方法,路径名也必须带_C后缀(LoadObject不需要带_C后缀),例如,蓝图路径是:Blueprint’/Game/Blueprints/Test’, 加后缀以后,则是:Blueprint’/Game/Blueprints/Test_C’,...
4. StaticLoadObject 5. LoadObject / LoadClass 性能与卡顿优化 预处理-资源注册表 异步载入 在项目的开发过程中,资源作为功能的载体,是产生无限可能的基础。无论是材质、网格、特效,还是玩家、AI、具体的业务逻辑,都需要以资源为支撑。因此,在项目中,资源动态创建非常常见。但是,有的同学却对资源创建的方式有不...