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裏也能看到請求加載的文件信息:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章