使用 UnrealPak.exe 创建 Pak文件方法
看来各位摸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, , nullptr))
{
GEngine->AddOnScreenDebugMessage(-, 5.0f, FColor::Red, TEXT("OnMountPak.Execute Successful."));
}
else
{
GEngine->AddOnScreenDebugMessage(-, 5.0f, FColor::Red, TEXT("OnMountPak.Execute Falied."));
}
}
else
{
GEngine->AddOnScreenDebugMessage(-, 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:
..\..\..\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:
* 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)

使用 UnrealPak.exe 创建 Pak文件方法的更多相关文章
- asp.net创建XML文件方法
方法一:按照XML的结构一步一步的构建XML文档. 通过.Net FrameWork SDK中的命名空间"System.Xml"中封装的各种类来实现的 方法一:按照XML的结 ...
- apache htpasswd.exe创建密码
一.使用apache htpasswd.exe创建密码文件,命令请看PHP推荐教程:apache htpasswd命令用法详解 apache htpasswd命令用法实例 1.如何利用htpasswd ...
- 在生成的Debug中test.exe的同级目录下创建一个文件,如TestLog.log
在上次编写一个日志类库时,想在.exe的同级目录下创建.log文件,对于这个路径的获得很简单,调用GetModuleFileName()函数即可.但是要去掉.exe而换成.log时,由于对字符串处理不 ...
- .net中创建xml文件的两种方法
.net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...
- 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间
[源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...
- Visual Studio 不生成.vshost.exe和.pdb文件的方法【转】
Visual Studio 不生成.vshost.exe和.pdb文件的方法[转] 使用Visual Studio编译工程时,默认设置下,即使选择了「Release」时也会生成扩展名为「.vshost ...
- ubuntu/linux mint 创建proc文件的三种方法(四)
在做内核驱动开发的时候,能够使用/proc下的文件,获取对应的信息,以便调试. 大多数/proc下的文件是仅仅读的,但为了演示样例的完整性,都提供了写方法. 方法一:使用create_proc_ent ...
- ubuntu/linux mint 创建proc文件的三种方法(两)
在这样做的内核驱动程序的开发时间.可以使用/proc下档.获取相应的信息.对于调试. 大多数/proc下的文件是仅仅读的.但为了演示样例的完整性.都提供了写方法. 方法一:使用create_proc_ ...
- C# 创建Dll文件供程序调用方法
C# 创建Dll文件供程序调用方法 使用C#创建动态Dll文件方法: 1. 在VS2017环境下,新建-项目-选择类库类型: 2. 新创建一个.cs文件(如test.cs),编写代码如下: usin ...
随机推荐
- poj1753 Flip Game
题意:4*4的正方形,每个格子有黑白两面,翻转格子使得4*4个格子显示全黑或全白,翻转要求:选中的那个格子,以及其上下左右相邻的格子(如果存在)要同时翻转.输出最小的达到要求的翻转次数或者Imposs ...
- 原生javascript实现省市区三级联动
腾讯IP分享计划(http://ip.qq.com/)有个现成的三级联动功能,查看源码后发现可以直接使用其单独的JS文件(http://ip.qq.com/js/geo.js). 分析后发现自己需要写 ...
- android webview远程调试
H5的调试的方式一般用chrome的emulator就好,可是遇到APP就拙计了.这时候还得用远程调试,远程调试很给力,不过目前网上还没有好的文章讲解,要好好的把其配置下来还是非常有难度的,今天折腾了 ...
- mysql数据库的导入导出
当我们在操作数据库的时候,难免会遇到数据导入导出的一些操作,今天突然学到了这个知识点,特意来给大家分享. 我用的是data的这条数据 1.使用数据 mysql> use data; Databa ...
- git使用和理解之一(不含分支)
0.前言 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 工作区和暂存区: 我们写代码的地方就是工作区,代码写完后, ...
- LeetCode 2 Add Two Numbers 模拟,读题 难度:0
https://leetcode.com/problems/add-two-numbers/ You are given two linked lists representing two non-n ...
- 关于Gridview的列名问题
Gridview的的数据绑定方法有两种: 一种就是datasourceid的绑定在绑定过程当中也可以通过select来选择性的绑定. 二种就是databind(): SqlDataAdapter da ...
- 401. Binary Watch
[题目] Total Accepted: 10330 Total Submissions: 24061 Difficulty: Easy Contributors: Admin A binary wa ...
- spring.net object 配制节点记录
<object id="Login" name="LoginService" type="SoftSFramework.BaseInfoServ ...
- LINUX:read、array、declare
read:要读取来自键盘输入的变量 使用规则: read [-pt] variale 选项与参数: -p:后面接提示字符: -t:后面接等待的“秒数”: 如果read之后不加任何参数,直接加上变量名称 ...