UnityでAndroidゲームアプリを作っています。
アプリにplay-games-plugin-for-unityを使ってGoogle Play Game Serviceを実装しようとしており、アプリを開いたときにGoogle Playへのログインをさせようと思って以下のコードを作成しました。しかしログインのポップアップすら出ず、ログインがされないので困っています。
ちなみに、必要な諸々の設定等はもちろんすべて済ませてあり、今のところどこを見ても不備がないです。
C#
1using System.Collections; 2using System.Collections.Generic; 3using GooglePlayGames; 4using GooglePlayGames.BasicApi; 5using UnityEngine.SocialPlatforms; 6using UnityEngine; 7using UnityEngine.UI; 8 9public class GoogleServiceManager : MonoBehaviour 10{ 11 public Text debugLabel; 12 13 void Start () 14 { 15 if(! IsLogined()){ 16 PlayGamesClientConfiguration config = 17 new PlayGamesClientConfiguration.Builder().Build(); 18 19 PlayGamesPlatform.InitializeInstance(config); 20 PlayGamesPlatform.Activate(); 21//デバッグでここまでは確実に実行できていることを確認できました 22 23 SignIn(); 24 } 25 } 26 27 public void SignIn() { 28//テスト時にはこの下のif文・else文のどちらにもいかなかった 29 Social.localUser.Authenticate((bool success) => { 30 if(success){ 31 debugLabel.text = "Sign In Successed!!"; 32 } 33 else{ 34 debugLabel.text = "Sign In Failed"; 35 } 36 }); 37 } 38 39 public bool IsLogined() 40 { 41 return Social.localUser.authenticated; 42 }
そして、実機にストアからアプリをダウンロードし、実際に起動したときに出てきたエラーコードを以下に示します。
logcat
110-28 17:09:02.530: E/Unity(27749): Unable to find gpg 210-28 17:09:02.575: E/Unity(27749): DllNotFoundException: gpg 310-28 17:09:02.575: E/Unity(27749): at (wrapper managed-to-native) GooglePlayGames.Native.Cwrapper.Builder:GameServices_Builder_Construct () 410-28 17:09:02.575: E/Unity(27749): at GooglePlayGames.Native.PInvoke.GameServicesBuilder.Create () [0x00000] in <filename unknown>:0 510-28 17:09:02.575: E/Unity(27749): at GooglePlayGames.Native.NativeClient.InitializeGameServices () [0x00000] in <filename unknown>:0 610-28 17:09:02.575: E/Unity(27749): at GooglePlayGames.Native.NativeClient.Authenticate (System.Action`2 callback, Boolean silent) [0x00000] in <filename unknown>:0 710-28 17:09:02.575: E/Unity(27749): at GooglePlayGames.PlayGamesPlatform.Authenticate (System.Action`2 callback, Boolean silent) [0x00000] in <filename unknown>:0 810-28 17:09:02.575: E/Unity(27749): at GooglePlayGames.PlayGamesPlatform.Authenticate (System.Action`1 callback, Boolean silent) [0x00000] in <filename unknown>:0 910-28 17:09:02.575: E/Unity(27749): at GooglePlayGames.PlayGamesPlatform.Authenticate (System.Action`1 callback) [0x00000] in <filename unknown>:0 1010-28 17:09:02.575: E/Unity(27749): at GooglePlayGames.PlayGamesLocalUser.Authenticate (System.Action`1 callback) [0x00000] in <filename unknown>:0 1110-28 17:09:02.575: E/Unity(27749): at GoogleServiceManager.SignIn () [0x00000] in <filename unknown 1210-28 17:09:02.611: W/Unity(27749): !!! [Play Games Plugin DLL] 10/28/18 17:09:02 +09:00 WARNING: Creating new PlayGamesPlatform 1310-28 17:09:02.611: W/Unity(27749): 1410-28 17:09:02.611: W/Unity(27749): (Filename: ./Runtime/Export/Debug.bindings.h Line: 43)
これを見る限りだと、おそらく一番上の2行
10-28 17:09:02.530: E/Unity(27749): Unable to find gpg 10-28 17:09:02.575: E/Unity(27749): DllNotFoundException: gpg
のせいでログインされないんだろうなぁというのは分かったのですが、そこからどうしたらいいか分からず手詰まりです...もしわかる方、またはこうすればいいのでは?というのを教えていただける方がいたら、本当によろしくお願いします!
#GPGSを使うためにしたこと(追記)
Unity : Google Game Service ログイン実装 - Android 公式 無料プラグイン使用
上記のサイトを主に参考にして設定を進めました。ただし、少し古い記事だったため、新しい情報はほかのサイトも掻い摘みつつ行いました(例えば、Google App Signingを利用したのでSHA-1フィンガープリントを自分で取得して登録する必要がなかったなど)。
エディタ上では上のスクリプトのSocial.localUser.Authenticate()
はしっかり実行されていて、success == false
となったので、プラグイン自体は動いているとは思います。実機だと実行すらされません。
他には、ネットで見た解決方法にGoogle API ConsoleでOAuth 2.0の認証情報のところにアップロード証明書のSHA-1フィンガープリントをコピペするというものがあったのでそれもしました。
設定が完了したのが結構前なので他にもあるかもしれませんが、今のところ思いつくのはこの程度です。
#環境(追記)
・Windows 10
・Unityバージョン: 2018.2.5f.1
・使用プラグイン: play-games-plugin-for-unity 0.9.51(おそらく最新版)
・実機のAndroidバージョン: Android 8.0.0
あなたの回答
tips
プレビュー