TYPESDK手游聚合SDK客戶端設(shè)計思路與架構(gòu)之四:unity開發(fā)平臺部分結(jié)構(gòu)設(shè)計和思路

2018-06-14 16:20 更新

在上一篇《iOS平臺接口設(shè)計及思路》中我們闡述了ios平臺的接口結(jié)構(gòu)和思路。在這里我們將闡述unity平臺下的接口結(jié)構(gòu)和思路。

       unity平臺是開發(fā)平臺,我們的程序代碼是在這個ide下堆疊的。unity端并不需要過多的考慮不同運行平臺(安卓/iOS)上的底層機(jī)制是如何實現(xiàn)的,本身unity已經(jīng)做了相應(yīng)的處理,我們只需要知道自己當(dāng)前的運行平臺是什么樣的,然后做好相關(guān)的平臺差異

       2.對不同運行平臺(安卓/iOS)能自適配



化接口調(diào)用就行。

       因為unity平臺是開發(fā)平臺,游戲渠道的差異性我們在運行平臺(安卓/iOS)上做了處理,那么unity部分客戶端,就不怎么需要關(guān)心渠道差異化的處理了。

一、那么我們還是照例,先看看想要設(shè)計的需求

       1.調(diào)用簡便

二、設(shè)計的模塊

       1.唯一的給外部調(diào)用接口模塊

       2.針對不同運行平臺(安卓/ios/windows)的接口實現(xiàn)

三、具體的細(xì)節(jié)

如圖所示的結(jié)構(gòu),我們在untiy主要實現(xiàn)了以下幾個功能

1.游戲客戶端的所有接口調(diào)用是通過typesdk類

2.typesdk會根據(jù)當(dāng)前運行平臺的不同,調(diào)用接口在不同平臺上的實現(xiàn)邏輯

3.這些不同平臺上的實現(xiàn)邏輯會跨平臺調(diào)用原生環(huán)境的接口

4.原生環(huán)境所有的信息數(shù)據(jù)發(fā)送給typenotify類

5.typenotify類將相關(guān)數(shù)據(jù)轉(zhuǎn)發(fā)給typesdk類

6.typesdk再將數(shù)據(jù)處理后反饋給游戲客戶端

       給到游戲調(diào)用的 typeSDK類中我們需要以下的接口定義

       登錄接口 public void InitSDK()

       獲取緩存在原生平臺處的sdk用戶數(shù)據(jù) public U3DTypeBaseData GetUserData()

       獲取緩存在原生平臺的渠道配置信息 public U3DTypeBaseData GetPlatformData()

       登錄接口 public void Login()

       登出接口 public  void Logout()

       支付接口 public string PayItem(U3DTypeBaseData _in_pay)

       提交用戶信息接口 public void UpdatePlayerInfo()

       大退游戲接口 public void ExitGame()

       根據(jù)函數(shù)名執(zhí)行拓展函數(shù)接口 public void DoAnyFunction(string _func_name,U3DTypeBaseData _in_data)

       我們可以通過類繼承來實現(xiàn)不同的運行環(huán)境下調(diào)用不同的接口

       在c#中,我們可以使用宏定義來實現(xiàn)這一功能,具體示例可以參考以下代碼的例子

public class TypeSDK :
       #if UNITY_ANDROID
           Bonjour_Type_Common
       #elif UNITY_IOS
             Bonjour_Type_Common_IOS
       #elif UNITY_STANDALONE_WIN
          Bonjour_Type_Common_Win
       #else
         Bonjour_Type_Common_Win
       #endif
       {
       }

用來響應(yīng)原生平臺的數(shù)據(jù)傳遞類typenotify

       因為unity本身已經(jīng)對跨平臺的數(shù)據(jù)接收做了很好的封裝,只需要知道我們的腳本對象名字,其他平臺就可以直接執(zhí)行這個腳本內(nèi)的函數(shù),所以我們在設(shè)計聚合sdk時,做了如下的一些響應(yīng)函數(shù)的定義


//登錄成功響應(yīng)
       public void NotifyLogin(string _in_data)
       //登出響應(yīng)
       public void NotifyLogout(string _in_data)
       //支付結(jié)果響應(yīng)
       public void NotifyPayResult(string _in_data)
       //初始化完畢響應(yīng)
       public void NotifyInitFinish(string _in_data)
       //拓展函數(shù)回調(diào)響應(yīng)
       void NotifyExtraFunction(string _json_string)

 如此一來,整個流程就成型了一個完整的體系。從接口的調(diào)用,到跨平臺數(shù)據(jù)的接收都有了相關(guān)的設(shè)計。

如果想了解更多,請聯(lián)系我們或關(guān)注官網(wǎng)

了解更多:www.typesdk.com

問題解答:1771930259

聯(lián)系郵箱:qianyuzhou@typesdk.com

項目地址:https://github.com/typesdk


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號