UE4資源載入,持續更新中

2021-10-02 02:39:50 字數 1275 閱讀 3777

在專案推進中,有很多種獲取資源的需求需要我們處理。

例如:因為藍圖類有自己的配置,沒辦法直接用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中,載入資源的方式區別較大.經過自己乙個下午的摸索,目...