在專案推進中,有很多種獲取資源的需求需要我們處理。
例如:因為藍圖類有自己的配置,沒辦法直接用staticclass直接使用藍圖子類。
當然,我們可以用staticload等等,這些我就在文章中說一下。
真實的關係很複雜,在此一定要區分兩個概念。
資源和內容。
資源包裹著內容。
ue4的各種載入都是在讀取資源。資源包裹著內容。
fassetdata說明了這一點。
而且要時刻明晰,物件和類。
在你使用各種載入的資源,通過資源內部的內容獲取到類資訊uclass,再通過類資訊生成物件。
因為類資訊也是uobject,所以在處理相關資訊時,比如封裝資源管理api做成資源管理manager,很容易把自己繞進去。
ublueprint是資源還是內容啊?說到這裡,你們思考一下,它可以轉換為你的類嗎?答案是否。ublueprint是資源。
解決辦法多種多樣,我先介紹1種:
ucustomuobject* u_obj=newobject(ucustomuobject::staticclass());
這是最簡單的,直接建立c++類的物件。
但是如果你要建立這個類的子藍圖物件呢?比如,你有乙個c++角色基類,你的每個藍圖子類修改了很多值,你該如何生成特定的藍圖子類物件呢?(當然,如果你沒有c++基類也可以用哈)
僅可以在建構函式裡面使用。因為在建構函式裡面直接攔截了
static constructorhelpers::fclassfindermyclass (text("/game/myfloder/myactor"));
// /game/myfolder 中/game=/content,其實就是/content/yourfolder
其實就是乙個模板。
檢測讀取是否成功呼叫內部方法succeeded();其內部重寫了*,至於為什麼有!!,這個玩意在c++中是乙個技巧,可以讓你的值最終變為0或者1.算是個小技巧吧。
如果非要研究為什麼在其他函式裡面使用會崩掉的話,僅初步展開,展深就沒完了。
另外,這玩意的底層是staticloadclass,只是進行封裝了。。。。。。。。。
未完待更新
ue4 動態載入資源
動態載入非藍圖資源 如 聲音等使用loadobject 資源型別 nullptr,text 資源路徑引用 載入藍圖資源 獲得藍圖類 loadclass 藍圖的型別 nullptr,text 資源路徑引用 c 這裡需要注意就是資源的路徑需要額外加上 c 例如uclass result1 loadcla...
UE4中資源載入資源的方式
在unity中,我們載入資源一般是通過resources.load path 即可完成.該方法返回的是object型別.如果你想要的是材質或者貼圖等等,只要 型別轉換的關鍵字就可以了例如 as material,則可以返回乙個材質的引用.在ue4中,載入資源的方式區別較大.經過自己乙個下午的摸索,目...
UE4中資源載入資源的方式
在unity中,我們載入資源一般是通過resources.load path 即可完成.該方法返回的是object型別.如果你想要的是材質或者貼圖等等,只要 型別轉換的關鍵字就可以了例如 as material,則可以返回乙個材質的引用.在ue4中,載入資源的方式區別較大.經過自己乙個下午的摸索,目...