? ,,

亚洲午夜精品视频_国产黄大片_网站av_99亚洲伊人久久精品影院红桃_91av入口_永久免费av片在线观看全网站

聯系我們

給我們留言

聯系我們

地址:福建省晉江市青陽街道洪山路國際工業設計園納金網

郵箱:info@narkii.com

電話:0595-82682267

(周一到周五, 周六周日休息)

當前位置:主頁 > 3D教程 > 圖文教程

UE4 C++實現動態加載的問題

來源: 52vr | 責任編輯:傳說的落葉 | 發布時間: 2019-06-04 08:32 | 瀏覽量:

[UE4]C++實現動態加載的問題

 

動態加載UObject和動態加載UClass分別用LoadObject(),和LoadClass() ,兩者均在在UObjectGlobals.h中。

 

另外注意:LoadClass的模版名稱,不能直接寫UBlueprint,例如:LoadClass是錯誤的,創建藍圖時選擇的是什么父類,則寫對應的父類名,假如是Actor,那么要寫成:LoadClass>,否則無法加載成功。

路徑名也必須帶_C后綴(LoadObject不需要帶_C后綴),例如,藍圖路徑是:Blueprint'/Game/Blueprints/MyBP.MyBP'

加后綴以后,則是:Blueprint'/Game/Blueprints/MyBP.MyBP_C',

例子:

 

 
  1. UClass* Test = LoadClass(NULL, TEXT("Blueprint'/Game/Blueprints/MapPathBrush_BP.MapPathBrush_BP_C'"));  
 

 

官方還沒出文檔,只能先看代碼注釋:
 

 
  1. // Load an object.  
  2. templateclass T >   
  3. inline T* LoadObject( UObject* Outer, const TCHAR* Name, const TCHAR* Filename=nullptr, uint32 LoadFlags=LOAD_None, UPackageMap* Sandbox=nullptr )  
  4. {  
  5.     return (T*)StaticLoadObject( T::StaticClass(), Outer, Name, Filename, LoadFlags, Sandbox );  
  6. }  

 

 
  1. // Load a class object.  
  2. templateclass T >   
  3. inline UClass* LoadClass( UObject* Outer, const TCHAR* Name, const TCHAR* Filename=nullptr, uint32 LoadFlags=LOAD_None, UPackageMap* Sandbox=nullptr )  
  4. {  
  5.     return StaticLoadClass( T::StaticClass(), Outer, Name, Filename, LoadFlags, Sandbox );  
  6. }  

 

 
  1. /** 
  2.  * Find or load an object by string name with optional outer and filename specifications. 
  3.  * These are optional because the InName can contain all of the necessary information. 
  4.  * 
  5.  * @param ObjectClass   The class (or a superclass) of the object to be loaded. 
  6.  * @param InOuter       An optional object to narrow where to find/load the object from 
  7.  * @param InName        String name of the object. If it's not fully qualified, InOuter and/or Filename will be needed 
  8.  * @param Filename      An optional file to load from (or find in the file's package object) 
  9.  * @param LoadFlags     Flags controlling how to handle loading from disk 
  10.  * @param Sandbox       A list of packages to restrict the search for the object 
  11.  * @param bAllowObjectReconciliation    Whether to allow the object to be found via FindObject in the case of seek free loading 
  12.  * 
  13.  * @return The object that was loaded or found. NULL for a failure. 
  14.  */  
  15. COREUOBJECT_API UObject* StaticLoadObject( UClass* Class, UObject* InOuter, const TCHAR* Name, const TCHAR* Filename = NULL, uint32 LoadFlags = LOAD_None, UPackageMap* Sandbox = NULL, bool bAllowObjectReconciliation = true );  
  16. COREUOBJECT_API UClass* StaticLoadClass(UClass* BaseClass, UObject* InOuter, const TCHAR* Name, const TCHAR* Filename = NULL, uint32 LoadFlags = LOAD_None, UPackageMap* Sandbox = NULL);  

 

 

 LoadObject加載例子,不需要添加后綴:

 
  1. UTexture2D* Tex = LoadObject(NULL, TEXT("Texture2D'/Game/Textures/UI/tex_test001.tex_test001'"));  

 
 

可以用LoadObject加載的文件包括:

Texture、Material、SoundWave、SoundCue、ParticlesSystem、AnimMontage、BlendSpace(1D,2D,3D)、AnimSequence、AnimBlueprint、SkeletalMesh等等。這些文件的父類都是UObject,所以也可以先加載為UObject*然后再強轉為具體的類型,例如:

 
  1. UObject* Obj = LoadObject(NULL, TEXT("SkeletalMesh'/Game/MyMesh.MyMesh'"));  
  2. USkeletalMesh* MyMesh = Cast(Obj);  

 

  

另外有兩個全局函數叫:StaticLoadObject()和StaticLoadClass(),應該是LoadObject()和LoadClass()的早期版本,前者需要手動強轉,后者使用模版封裝過,使用更方便,推薦使用后者



相關文章
網友評論

您需要登錄后才可以發帖 登錄 | 立即注冊

關閉

全部評論:0條

推薦
熱門
主站蜘蛛池模板: 韩国一区在线 | 日本一级特黄视频 | 青青草视频在线观看 | 国产情侣真实露脸在线 | 又爽又黄又无遮挡的激情视频 | 国产深夜福利视频网站在线观看 | 毛茸茸厕所偷窥xxxx | 一级毛片电影免费看 | 久久国产精品久久国产精品 | 扒开双腿猛进入喷水免费视频 | 精品久久亚洲 | 欧美成人精品手机在线 | 5x性区m免费毛片视频看看 | 72种姿势欧美久久久久大黄蕉 | 真正免费一级毛片在线播放 | 99久久99久久免费精品蜜桃 | 精品国模一区二区三区 | 人妻无码一区二区三区 | 久久精品无码一区二区无码 | 一个人在线观看免费视频www | 在线观看你懂的网站 | 天天色天天碰 | 狠狠干2015 | 国产av无码专区亚洲a∨毛片 | 天堂一区二区三区精品 | 永久在线播放 | 欧美激情 在线 | 欧美三根一起进三p | 亚洲综合偷自成人网第页 | 黄色成人在线观看 | 久久爽久久爽久久免费观看 | 欧美日韩亚洲国产千人斩 | 免费永久在线观看黄网 | 自拍在线观看 | 亚洲欧美日韩一区高清中文字幕 | 我把护士日出水了视频90分钟 | 亚洲精品夜夜夜 | 妞干网免费在线视频 | 四虎8848精品永久在线观看 | 国产亚洲精品久久久久的角色 | 动漫精品一区二区三区 |