透過Unity整合Huawei Game Service 並獲取玩家標識資訊
背景描述
近期,發現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 版本更新說明:
介面驗證測試
這裡直接執行的Unity 的demo ,這裡如果您不會打包執行demo ,推薦參考這篇帖子:
AccountAuthParamsHelper
檢視C# 原始碼,可以發現Unity 當前支援透過如下方式設定請求授權:
AccountAuthParamsHelper authParamsHelper = new AccountAuthParamsHelper(); authParamsHelper.SetAuthorizationCode().SetAccessToken().SetIdToken().SetUid().SetId().SetEmail().CreateParams();
這裡請求授權的有: AuthorizationCode、AccessToken、IdToken、Uid、Id、Email等授權。
這個和華為側文件描述也基本一致,當然我們可以按照我們的業務需求自行設定:
操作:點選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)
介面的使用說明
關於這兩個介面的詳細使用說明,我這裡參考了華為的官方文件,大家也可以參考下。
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 。
原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0203465508761300118?fid=0101271690375130218
原作者:Mayism
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2779380/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 獲取 CPU資訊,並透過登錄檔寫入
- 透過Python SDK 獲取tushare資料Python
- Windows系統下透過命令列獲取程序指標Windows命令列指標
- 透過硬體識別符號獲取過程映像輸入符號
- 如何透過API獲取實時商品資料API
- 透過Docker啟動Solace,並在Spring Boot透過JMS整合SolaceDockerSpring Boot
- 使用selenium定位獲取標籤物件並提取資料物件
- Unity通過子物件獲取父物件例子Unity物件
- 拼多多商品資料如何透過api介面獲取API
- 透過Requests模組獲取網頁內容並使用BeautifulSoup進行解析網頁
- 如何透過Spring Data/EntityManager/Session直接獲取DTO資料?SpringSession
- PHP透過Modbus Tcp實時獲取裝置資料PHPTCP
- 為什麼要透過API介面來獲取資料API
- 通過web url獲取檔案資訊Web
- 呼叫百度api透過經緯度獲取實際地理位置資訊API
- 透過1688店鋪所有商品API介面一鍵獲取店鋪所有商品資訊API
- 排查 Kubernetes HPA 透過 Prometheus 獲取不到 http_requests 指標的問題PrometheusHTTP指標
- Django透過request獲取客戶端IPDjango客戶端
- 專欄講解滲透測試網站資訊獲取網站
- 獲取位置資訊
- 透過滑鼠事件獲取滑鼠位置在3d中的座標mouse/Raycaster事件3DAST
- 透過WebView2獲取HTTP-only cookieWebViewHTTPCookie
- 瞭解直播帶貨系統原始碼,透過html5程式碼獲取位置資訊原始碼HTML
- 微信網頁授權並獲取使用者資訊網頁
- 為了獲取網路介面卡資訊、刪除 DNS 快取和 IP 地址,並透過 ipconfig /renew6 自動獲取 IPv6 地址,可以使用以下步驟和命令。DNS快取
- Unity中獲取依賴資訊出現其他未引用字型問題Unity
- Unity接入華為HMS SDK獲取不到agconnect-services.json檔案資訊UnityGCJSON
- Python 系統資源資訊獲取工具,你用過沒?Python
- Java知識點總結(反射-獲取類的資訊)Java反射
- React-hooks 父元件透過ref獲取子元件資料和方法ReactHook元件
- unity3d透過串列埠接收Arduino資料Unity3D串列埠UI
- 拼多多也可以透過ID獲取商品詳情?
- 【小知識】spring攔截器獲取到介面資訊並上報Spring
- Oracle獲取所有表名資訊和獲取指定表名欄位資訊Oracle
- python如何獲取陣列元素的下標並輸出Python陣列
- 透過經緯度計算距離獲取附近商家
- 透過Lambda函式的方式獲取屬性名稱函式
- python透過IP獲取國家和城市地市的方法Python