editor下只能用未cook的資源,打包後只能用cook了的資源,否則載入不了
本例採用已加密的pak檔案,包含解密過程
簡單講解下幾個知識點:
掛載(mount):簡單理解為儲存資源的路徑,在載入時就可以通過這個路徑找到資源
載入(load):將資源載入到記憶體,必須先掛載才能載入
掛載點(mountpoint):即將檔案虛擬的掛載到某個路徑上,在ue4中即為/game可以直接讀取到的位置
iplatformfile:ue4的檔案系統,建立時必須提供上乙個iplatformfile,呈鏈狀
fpakplatformfile:繼承自iplatformfile,用來掛載pak
fplatformfilemanager:管理iplatformfile的類,setplatformfile是設定最頂層的iplatformfile
tsharedptr<>:ue4封裝的智慧型指標,這是是用於c++原生類的指標
直接上**,在注釋裡進行詳解
build.cs新增pakfile模組
publicdependencymodulenames.
addrange
(new
string
);
在自己的gameinstance.h新增如下**:
public
:uyourgameinstance
(const
class
fobjectinitializer&)
;virtual
void
init()
;//遊戲啟動時執行
virtual
void
shutdown()
;//遊戲關閉時執行
private
: iplatformfile* platformfile;
//初始檔案系統
tsharedptr pakplatformfile;
//pak檔案系統
在自己的gameinstance.cpp新增如下**:
uyourgameinstance::
uyourgameinstance
(const fobjectinitializer& objectinitializer)
:super
(objectinitializer)
void uyourgameinstance::
init()
void uyourgameinstance::
shutdown()
//這裡的檔案系統結構,pakplatformfile 從鍊錶中移除,裡面掛載的檔案將找不到
//platformfile
}//掛載函式
//pakname : pak包的路徑,相對路徑或絕對路徑皆可
//mountpoint : 掛載點的位置,編輯器下相對或者絕對路徑皆可,打包後切記一定使用相對路徑,用於相容各種檔案載入
void uyourgameinstance::
mountpakwithmountpoint
(fstring pakname, fstring mountpoint)
//將pak掛載到mountpoint
if(pakplatformfile-
>
mount
(*pakname,1,
*mountpoint)
)else
//到這裡其實已經完成了,後續就可以正常使用pak包裡的資源,用於專案中掛載和載入最好分開,一定要理解這個概念
//但是第一次寫的同學可能不太明白,下面寫一些是測試**用於載入和除錯}}
}}}}
}}//解密函式,沒啥好說的,就是用base64轉換下
void uyourgameinstance::
initencrypt
(uint8* key)
UE4 pak生成和載入
1.建立乙個pak檔案 用cmd執行開啟d epic games ue 4.15 engine binaries win64下有個unrealpak檔案 cd到路徑後 通過執行時傳遞引數 unrealpak.exe 要生成的pak檔案 create 要打包的檔案列表 order 檔案在pak中排序描...
UE4遊戲載入流程總覽 UE4遊戲載入順序
實話說,玩ue4這麼久了才關注到虛幻4的遊戲載入順序有點晚了,但是這個也是比較重要的,所以再晚也不算晚,哈哈 這個圖是官方文件上的載入順序的流程圖,從圖上可以看出,對於編輯器模式和standalone兩種模式下的載入順序完全不一樣。對於standalone模式 stand alone模式執行 來講,...
ue4 動態載入資源
動態載入非藍圖資源 如 聲音等使用loadobject 資源型別 nullptr,text 資源路徑引用 載入藍圖資源 獲得藍圖類 loadclass 藍圖的型別 nullptr,text 資源路徑引用 c 這裡需要注意就是資源的路徑需要額外加上 c 例如uclass result1 loadcla...