使用 UnrealPak.exe 创建 Pak文件方法
https://www.cnblogs.com/linqing/p/5100518.html
看来各位摸UE4 的基佬们,也是被DLC搞得不要不要的呢,其实热更新PAK是很简单就可以实现的,虽然当时我也是弄了快一个月。
下面贴一段以前在 Runtime 状态下 Mount Pak的代码,希望能帮助大家。
首先你得有一个Cookie 过的PAK文件。
Pak文件的例子参照 :http://www.tomlooman.com/add-mod-support-to-your-unreal-engine-4-game/
(当然也可以通过 UnrealPAK.exe 以命令的形式生产Pak文件)
然后在序列化到本地之后采用类似下面的代码,就可以将资源注册到Game中。
而后就可以像其他asset 一样采用 StaticLoadObject 加载到游戏中了。
if (FCoreDelegates::OnMountPak.IsBound()) { //GEngine if (FCoreDelegates::OnMountPak.Execute(temp_filePath, 0, nullptr)) { GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("OnMountPak.Execute Successful.")); } else { GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("OnMountPak.Execute Falied.")); } } else { GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("OnMountPak.IsBound() Falied")); }
------------------------------------------------------------------------------------------
DLC这个问题折腾老子半个多月,现在总算有点进展,靠靠靠~到现在还是没搞定。
https://forums.unrealengine.com/showthread.php?7323-UE4-equivalent-of-AssetBundles-(Unity)
You could also use pak files. Pak is a single package containing multiple asset files (only content, no DLLs etc).
There's a UnrealPak.exe under Engine/Binaries/Win64. Here's example how it can be used
UnrealPak.exe D:\MyAssetPak.pak PathToYourProject/Content/FolderToAddToPak1 PathToYourProject/Content/FolderToAddToPak2 ...
or
UnrealPak.exe D:\MyAssetPak.pak -create=PathToResponseFile.txt
where the ResponseFile could be:
Code:
..\..\..\Engine\Content\Editor\Slate\*.* ..\..\..\Engine\Content\Localization\*.* ..\..\..\Engine\Shaders\*.* ..\..\..\Engine\config\*.* PathToYourProject\*.uproject PathToYourProject\Config\*.* PathToYourProject\Content\Localization\*.* PathToYourProject\Saved\Sandboxes\Cooked-WindowsNoEditor\Engine\*.* ..\..\..\Engine\*.* PathToYourProject\Saved\Sandboxes\Cooked-WindowsNoEditor\ProjectName\*.* ..\..\..\ProjectName\*.*
Note that the last two lines re-base the content from Cooked folder to Content folder.
There's more info in UnrealPak.cpp, line ~582:
Code:
* Params: * -Test test if the pak file is healthy * -Extract extracts pak file contents (followed by a path, i.e.: -extract D:\ExtractedPak) * -Create=filename response file to create a pak file with * where the first number is the private key exponend, the second one is modulus and the third one is the public key exponent. * -TableMax=number maximum prime number in the generated table (default is 10000)
本文原创,不定时更新 可以随意转载到任何网站 ~但是~ 转载也要按“基本法” 请注明原文出处和作者