使用 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 ...
随机推荐
- c#数据绑定(5)--LINQ
嶽永鹏/文 本实例以MS AdventureWorks2008Entities数据库为基础,演示了LINQ TO ENTITY.LINQ TO ENTITYSQL和LINQ TO ENTITYCLIE ...
- springMVC 错误页面配置
在Spring MVC应用程序中,404 error code 被合适的配置.web.xml文件中配置如下所示: <!-- spring mvc start --> <servlet ...
- gulp教程之gulp-rev-append
简介: 使用gulp-rev-append给页面的引用添加版本号,清除页面引用缓存. 1.安装nodejs/全局安装gulp/项目安装gulp/创建package.json和gulpfile.js文件 ...
- 华为地铁换乘 Java
public class MetroTransfor { static int ver=37; static int point=35; static int [][] di ...
- lamp遇到问题
1.配置好apache和虚拟host,显示无权, 将网站目录更新755,还是不行,最后selinux: 1.设置下面即可: chcon -R -h -t httpd_sys_content_t /ho ...
- 学习docker
虚拟机下Ubuntu环境 1.sudo apt-get update 2.sudo apt-get install docker.io 3.在daocloud(http://www.daocloud. ...
- 转一个 Xcode 7 缺少 *.dylib库的解决方法
Xcode7中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,通过查找资料,尝试后得到以下两种解决方法. 方法1. (heqin ...
- c++内存对齐
内存对齐原则: 1.数据成员对齐规则:struct, union的数据成员,第一个数据成员放在offset为0的地方,之后的数据成员的存储起始位置都是放在该数据成员大小的整数倍位置.如在32bit的机 ...
- 在非spring组件中注入spring bean
1.在spring中配置如下<context:spring-configured/> <context:load-time-weaver aspectj-weaving=&q ...
- 自定义javascript log方法
/** * 类似chrome,firefox的console对象 * 但是在IE等不支持console的浏览器不会报错 * 理论上浏览器支持的console的方法都支持,比如谷歌的 * assert, ...