背景描述
近期,發現Unity發布了配套Huawei Game Service SDK 5.0.4.302版本的demo,試水測試一把這個版本提供的新能力,寫個帖子同步給大家啦。
- Demo****下載地址:
-
變更說明:
看了下,unity之前發布支持了華為Game Service SDK4.0.1.300版本的插件,這次Unity直接更新支持到Game Service SDK5.0.4.302版本
unity這次變更如下:
-
新增
GetGamePlayer``和``GetGamePlayer(bool isRequirePlayerId)``兩個接口,以實現獲取游戲玩家唯一標識。
-
新增
SetGameTrialProcess
,防沉迷試玩能力的接口監聽。 -
新增
AccountAuthParamsHelper
,支持開發者獲取華為帳號更多的信息,比如openId,unionId,email之類信息。 -
Player對象新增了
OpenId
,UnionId
,AccessToken
和OpenIdSign``字段。
-
增加
AppPlayerInfo
接口去保存當前玩家信息。
如果想了解上述更詳細的變更說明,可以參考華為的game Services SDK****版本更新說明:
developer.huawei.com/consumer/cn…
接口驗證測試
這里直接執行的Unity的demo,這里如果您不會打包運行demo,推薦參考這篇帖子:
AccountAuthParamsHelper
查看C#源碼,可以發現Unity當前支持通過如下方式設置請求授權:
AccountAuthParamsHelper authParamsHelper = new AccountAuthParamsHelper(); authParamsHelper.SetAuthorizationCode().SetAccessToken().SetIdToken().SetUid().SetId().SetEmail().CreateParams();
這里請求授權的有: AuthorizationCode、AccessToken、IdToken、Uid、Id、Email等授權。
這個和華為側文檔描述也基本一致,當然我們可以按照我們的業務需求自行設置:
developer.huawei.com/consumer/cn…
操作:點擊Login>login按鈕
現象:
勾選email,點擊同意授權,界面會提示歡迎框,相關信息獲取如下:
可以發現:openId、unionId、AccessToken、AuthorizationCode、IdToken均可獲取到。
**但是email沒有獲取,這里我在授權頁面也勾選了email,為什么沒有獲取到呢?**后來聯系華為技術支持,發現我登錄的華為帳號本身就沒有填寫email地址,自然是獲取不到的,大家可以到華為手機設置》華為帳號中心》帳號與安全》郵箱地址下查看,這里確實沒有綁定。
大家實際綁定一個郵箱,就可以獲取到了,綁定后調測如下:
Uid獲取不到是正常的,這個和華為側技術支持核實,該uid目前暫未對外開放。
這里可以看到這個最新的Unity插件版本,已經支持可以獲取華為帳號的多個信息,如果游戲想要使用華為帳號的unionId或者openId等信息作為玩家唯一標識,也是可以的。
GetGamePlayer
該接口映射的是華為Game Service SDK5.0.4.302版本的getGamePlayer接口,按照華為官網描述,該接口獲取的player對象只有displayName、openId、unionId、accessToken有值。這里我自測了下。
操作:點擊Player>getGamePlayer按鈕
現象:
可以看到,這個和華為側的文檔描述要求一致,返回的信息中只有:displayName、openId、unionId、accessToken有值。
GetGamePlayer(bool isRequirePlayerId)
該接口映射的是華為Game Service SDK5.0.4.302版本的getGamePlayer(boolean isRequirePlayerId)接口,支持同時獲取playerId和openId
操作:點擊Player>getGamePlayer(isRequirePlayerId)
現象:
這個和華為側要求也一致。
GetGamePlayer和GetGamePlayer(bool isRequirePlayerId)接口的使用說明
關於這兩個接口的詳細使用說明,我這里參考了華為的官方文檔,大家也可以參考下。
developer.huawei.com/consumer/cn…
setGameTrialProcess
這個接口看華為官網介紹,發布中國大陸的游戲因為要滿足中國大陸的游戲防沉迷要求,所以需要接入,我這邊項目因為都發布海外,暫時不需要,另外調測這個接口需要向華為運營申請,所以我這里就不測試了。
AppPlayerInfo
保存玩家savePlayerInfo接口時需要使用,這里我們項目都是自己管理保存我們的玩家信息,沒有使用華為的這個接口,所以也不做測試了。
測試小結
可以發現,unity這個版本的插件,較上個版本的Game Service SDK4.0.1.300版本,最重要的變化點:
1. 支持我們自行設置華為帳號信息授權的范圍,比如獲取openId、unionId、email等信息。
2. 華為Game Service SDK5.0.4.302版本開始,支持以前通過getCurrentPlayer接口獲取playerId作為玩家唯一標識的游戲,將playerId替換為openId或unionId,因此新增了getGamePlayer接口,這個unity目前也支持該能力。
3. 支持了發布中國大陸的游戲試玩能力,即setGameTrialProcess。
原文鏈接:developer.huawei.com/consumer/cn…
原作者:Mayism