UE4 Cook On The Fly通过数据线连接Android手机

编程知识 更新时间:2023-04-17 19:35:40

UE4如果需要在真机上测试, 通常编译+打包+安装需要很长的时间.
所以UE4提供了Cook On The Fly的功能, 就是默认只编译, 资源的Cook在运行时由FileHostServer进行Cook, 这样就不用每次测试经历痛苦的打包过程.
对于Android平台来说, 只需要安装apk, 资源文件(默认在obb里)仍然保存在PC机上, 通过网络进行访问.
PC机做为FileHostServer, 对于请求的文件进行Cook , 如果没有请求的则不会进行Cook.
但是对于公司的网络策略来说, 手机直接访问开发网的PC还是比较麻烦的, 而且WiFi网络的传输速度也不是很理想.
那么能不能通过USB数据线来传输呢? 官方文档里没有说明, 不过分析了一下UE4的代码, 发现COTF功能走的是TCP协议, 端口号是

DEFAULT_TCP_FILE_SERVING_PORT=41899, // default port to use when making file server tcp connections (used if no protocol is specified)

所以可以通过adb端口映射的方式转发一下:

adb.exe reverse tcp:41899 tcp:41899

然后PC端启动Cook资源的Server:

UE4Editor-Cmd.exe -run=cook -targetplatform=Android_ASTC -cookonthefly

如果加上-iterate可以进行增量Cook, 不然每次关闭Server后下次打开会重新进行Cook的. 但是-iterate有时会出bug…

打包apk时可以选择不cook资源, 比如使用UnrealFrontend.exe可以这么设置:

安装完apk后需要增加启动的命令行参数, 传入FileHost的IP, 这里是通过UE4CommandLine.txt来完成的

UE4CommandLine.txt
…/…/…/ActionRPG/ActionRPG.uproject -filehostip=127.0.0.1

然后拷贝到Android设备上的对应目录, 可以使用adb命令来完成:

adb.exe push UE4CommandLine.txt /mnt/sdcard/UE4Game/ActionRPG/UE4CommandLine.txt

这时在手机上启动ActionRPG, 就会发现PC上的Server开始Cook资源了:

不出意外, 等一会儿就可以进入游戏了, 这样测试的迭代测试效率会比原来的打包流程提升非常多, 资源量越大越明显

游戏Log里也能看到请求加载的文件信息:

更多推荐

UE4 Cook On The Fly通过数据线连接Android手机

本文发布于:2023-04-14 03:19:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/1bdfb91f3650dd1a2ce587dddf11cba5.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据线   手机   Cook   Android   Fly

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 74513文章数
  • 14阅读数
  • 0评论数