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了,以下是一些小心得跟大家分享
2016年4月7日星期四
[Unity3D]用uFrame的Kernel在場景間修改玩家狀態和數據
在uFrame 1.6的 Example Project裏有一個UserManagementSystem的系統(WinCondition這個eEnum是我之後加的,下文會再討論)
public class UserManagementService : UserManagementServiceBase
{
[Inject("LocalUser")] public UserViewModel LocalUser;
public override void Setup()
{
base.Setup();
// for develop only
LocalUser.AuthorizationState = AuthorizationState.Authorized;
//LocalUser.AuthorizationState = AuthorizationState.Unauthorized;
}
public void AuthorizeLocalUser(string Username, string Password)
{
if (Username == "uframe" && Password == "uframe")
{
Debug.Log("authorized in service");
LocalUser.AuthorizationState = AuthorizationState.Authorized;
}
}
}
這是處理Example Project內一開始登入的部份,就是確認登入成功後把AuthorizationState這個Enum轉成Authorized,方便在其他腳本檢查玩家的狀態。
我在想,是不是可以用UserManagementSystem內UserViewModel(我把這個instance命名為LocalUser, 上圖左上角)儲存玩家各種設定和資料,然後在不同場景不同的View 或 Controller的腳本把LocalUser取出來用或修改設定呢?
簡單說個例子,其中一個想做的功能就是在主畫面(有一個SetBattleScreenView)按不同作戰/勝利模式的按鈕,會修改LocalUser中WinCondition的設定,在進入作戰畫面後(另一個場景scene),而作戰畫面會檢查玩家在用哪個勝利模式(就是WinCondition),而運行不同的代碼。
(如果大家不了解uFrame MVVM模式可以來這裏了解一下:http://isaacforfun.blogspot.hk/2015/06/uframeflappy-brid.html)
訂閱:
文章 (Atom)