99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

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

2018-06-14 16:20 更新

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

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

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



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

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

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

       1.調(diào)用簡便

二、設(shè)計(jì)的模塊

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

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

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

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

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

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

3.這些不同平臺上的實(shí)現(xiàn)邏輯會(huì)跨平臺調(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)

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

       在c#中,我們可以使用宏定義來實(shí)現(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

       因?yàn)閡nity本身已經(jīng)對跨平臺的數(shù)據(jù)接收做了很好的封裝,只需要知道我們的腳本對象名字,其他平臺就可以直接執(zhí)行這個(gè)腳本內(nèi)的函數(shù),所以我們在設(shè)計(jì)聚合sdk時(shí),做了如下的一些響應(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)

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

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

了解更多:www.typesdk.com

問題解答:1771930259

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

項(xiàng)目地址:https://github.com/typesdk


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號