2016年4月22日星期五

[Unity3D]大型手遊用,Android OBB文件研究


為什麼用到OBB (Opaque Binary Blob)?
Google Play限制了只可以上載小於100MB的apk檔(以前是50MB),但App Store提供上載apk擴展文件,OBB檔則是一種可供上載的擴展文件。

//啟用分離應用程序二進制(Split Application Binary)時,播放器可執行文件和數據將分離,生成僅包含可執行(Java, Native) 代碼(約為10MB)、任何及所有腳本/插件代碼以及第一個場景數據的.apk(主要應用程序二進制)。其他數據(所有其他場景、資源、流媒體資源...)將分別序列化成 APK 擴展文件 (.obb)。//


之後我在Asset Store找到個OBB Downloader
Google Play OBB Downloader:
https://www.assetstore.unity3d.com/en/#!/content/3189

但是我試了一整天都無辦法下載建立出來的OBB,然後有人告訴我,Unity 4.6之後可以自動下載OBB了,所以可以以不用這插件 OTL

然後,幾經辛苦,終於可以用OBB了,以下是一些小心得跟大家分享


首先,Unity官網的API也有說明OBB, 有興建可以去看看:
http://docs.unity3d.com/Manual/android-OBBsupport.html

第一步就是要在Player Setting 內,Publishing Settings內的Split Application Binary打勾

然後在Other Settings Bundle identifier命名一個好點的packagename,之後命名OBB文件會用到,順帶一提Bundle Version Code記緊每一次有更新上Google App Store都要+1,在OBB也有用呀!


Product Name就沒所謂,你喜歡的話打中文也可喔~


最後就可以Build apk了,Build好之後會出現一個apk和一個obb檔,如果你在Product Name打「我的遊戲」,就會有:
我的遊戲.apk
我的遊戲.main.obb

然後請將obb重新命名!
然後請將obb重新命名!
然後請將obb重新命名!

因為最重要所以要說三次,格式為main.versioncode.packagename.obb

用上圖的Bundle做例子,我的obb檔就要重新命名為:main.4.com.peopleingame.hk.obb

要是直接放在Android手機測試的話,請跟隨下圖路徑,在obb的資料夾建立一個自己package name的資料夾,如下圖的com.peopleingame.hw (然後你也發現其他手遊的obb資料夾 XD),然後請把你重新命名的obb檔放在這資料夾內,事就這樣成了!





4 則留言:

  1. Hi 你好
    想請問一下你就只是把檔案分成apk跟obb兩個後
    把obb放置在正確的路徑下並取名正確的名字後
    執行apk就可以了嗎?
    還是在apk這端有任何需要呼叫obb的程式

    回覆刪除
    回覆
    1. 現在不需要呼叫obb的程式的了,路徑對就可以了

      刪除
  2. 謝謝分享,也想問有否試過提交一個超過100M的APP到Google play? 能分享一下流程嗎?謝謝

    回覆刪除
  3. 哈喽你好, 我测试下来做好了OBB放到目录之后发现运行会闪退, 有遇到过吗 ?

    回覆刪除