版權所有 (c) 2014 Google Inc. 保留所有權利。
Unity® 的 Google Play 遊戲插件是一個開源項目,其目標是提供一個插件,允許遊戲開發人員從用 Unity® 編寫的遊戲中與 Google Play 遊戲 API 整合。但是,該專案並未以任何方式獲得 Unity Technologies 的認可或監督。
Unity® 是 Unity Technologies 的商標。
iOS 是蘋果公司的商標。
請從 Github 發佈頁面下載該軟體包。
Unity 的 Google Play 遊戲外掛程式可讓您透過 Unity 的社交介面存取 Google Play 遊戲 API。該插件為 Google Play Games API 的以下功能提供支援:
登入
朋友們
解鎖/顯示/增加成就
將分數發佈到排行榜
雲端保存讀/寫
顯示內建成就/排行榜 UI
事件
附近的連接
注意:此版本的插件不再支援 iOS。 適用於 iOS 的 Google Play 遊戲服務已被棄用,並且不太可能如預期般運作。請勿在新應用程式中使用適用於 iOS 的 Google Play 遊戲服務。有關更多詳細信息,請參閱棄用公告部落格文章。
特徵:
簡單的面向 GUI 的專案設定(整合到 Unity GUI 中)
無需覆蓋/自訂播放器 Activity
無需覆蓋/自訂 AndroidManifest.xml
有關使用該外掛程式的說明,請參閱此開發人員指南。
有關演示如何使用 Google Play Games 的範例應用程序,請參閱 SmokeTest 專案;
如果您已經將您的專案與先前版本的外掛程式整合並希望升級到新版本,請參閱升級說明。
為了代表目前玩家存取後端 Web 伺服器上的 Google API,您需要從客戶端應用程式取得身份驗證程式碼並將其傳遞到您的 Web 伺服器應用程式。 然後可以將此程式碼交換為存取權杖以呼叫各種 API。有關此流程的更多詳細信息,請參閱:Google 網站登入。
取得伺服器授權碼:
在 Play 遊戲控制台中設定連結到您的遊戲的 Web 應用程式的 Web 用戶端 ID。
建立配置時呼叫PlayGamesClientConfiguration.Builder.RequestServerAuthCode(false)
。
玩家經過驗證後,呼叫PlayGamesPlatform.Instance.GetServerAuthCode()
。
將此程式碼傳遞到您的伺服器應用程式。
PlayGamesPlatform.Instance.RequestServerSideAccess(/* forceRefreshToken= */ false,code -> { // 傳送程式碼到伺服器});
透過使用 Proguard 刪除您的遊戲不使用的 Play 遊戲服務功能的程式碼,可以減少 Play 遊戲服務 Unity 外掛程式的大小。 Proguard 將刪除遊戲中未使用的功能的 Play Games Unity 外掛程式碼,以便您的遊戲僅附帶所需的程式碼,並最大限度地減少使用 Play Games 服務對大小的影響。
此外,還可以使用 Unity 的託管程式碼剝離來減少整個 Unity 專案的大小,這將壓縮整個專案。 這可以與 Proguard 結合使用。
前往File > Build Settings > Player Settings
,然後點選Publishing Settings
部分。選擇Proguard
for Minify > Release
。然後,啟用User Proguard File
。如果您希望該外掛程式也為調試 apk 進行混淆,您可以選擇Proguard
for Minify > Debug
。
將 proguard 設定的內容複製到Assets/Plugins/Android/proguard-user.txt
中。
當您呼叫PlayGamesPlatform.Activate
時,Google Play Games 將成為您的預設社交平台實現,這意味著對Social
和Social.Active
中的方法的靜態呼叫將由 Google Play Games 外掛程式執行。這是大多數使用該插件的遊戲所期望的行為。
但是,如果出於某種原因您希望保持預設實現的可訪問性(例如,使用它向其他社交平台提交成就和排行榜),您可以使用 Google Play Games 插件,而無需覆蓋預設實作。為此:
不要呼叫PlayGamesPlatform.Activate
如果Xyz
是您希望在Social
類別上呼叫的方法的名稱,請勿呼叫Social.Xyz
。相反,呼叫PlayGamesPlatform.Instance.Xyz
與 Google Play 遊戲互動時請勿使用Social.Active
。相反,請使用PlayGamesPlatform.Instance
。
這樣,您甚至可以同時向兩個或多個社交平台提交分數和成就:
// 向原始預設社群平台提交成就Social.ReportProgress("MyAchievementIdHere", 100.0f,callback);// 向Google PlayPlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f,callback)提交成就;
本節列出了透過編寫程式碼、改進文件或修復錯誤對此專案做出貢獻的人員。
Dgizusse 找出在 Windows 上設定 JAVA_HOME 是必要的。
antonlicht 用於修復支援庫上 showErrorDialog 參數類型的錯誤。
pR0Ps 用於修復 OnAchievementsLoaded 不接受 OPERATION_DEFERRED 結果代碼作為成功的問題。
friikyeu 幫助調試導致 API 呼叫排隊而不是在連接時執行的問題。