UE4 Cook On The Fly通过数据线连接Android手机
Posted xoyojank
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4 Cook On The Fly通过数据线连接Android手机相关的知识,希望对你有一定的参考价值。
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手机的主要内容,如果未能解决你的问题,请参考以下文章
R Highcharter:Shiny on the fly 中的动态钻取
布尔约束传播BCP——文献学习CDCL Solver Additions: Local Look-Ahead,All-Unit-UIP Learning and On-the-Fly Probing(