在上一篇《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
更多建議: