1

Попытка выяснить, что пошло не так с этим плагином GPG. Я следил за инструкциями и понимал документ, чтобы проверить запуск логина и показать лидирующий интерфейс пользователя через этот one. Я сделал игровые достижения + лидеров с помощью учетной записи разработчика Google Play, сделайте настройку, скопируйте источник и сделайте это. Тестирование рекламы путем добавления Admob Пакет Unity и пакет GPG Unity, и он отлично работал. Я даже обновляю некоторые плагины для Android (и т. Д. .arar files, firebase-common, manifest), чтобы максимизировать совместимость и эффективность, чтобы я мог создавать APK без каких-либо проблем, мешающих наращиванию.Отображение пользовательского интерфейса Google Play Game Leaderboard не работает

Однако есть одна проблема: после того, как я вошел в систему и попытался нажать кнопку «show leaderboard UI» вместе с событием кнопки, который спрашивает, прошел ли аутентификация пользователя, и позволит вам записать ваш последний рекордер, обновив прежде чем показывать пользовательский интерфейс лидеров. Вот как работает код:

Во-первых, в() обратного вызова ...

PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder() 
     .Build(); 

    PlayGamesPlatform.InitializeInstance(config); 
    PlayGamesPlatform.DebugLogEnabled = true; 
    PlayGamesPlatform.Activate(); 

Далее, вот Логин/выход из системы процесс ...

public void LogInAccount() { 
// Show dialog. 
y = 0; 
dialogPanel.SetActive (true); 
dialogBackground.SetActive (true); 

// You can logout if you're logged in. 
if(Social.localUser.authenticated) { 

    ((PlayGamesPlatform)Social.Active).SignOut(); 

    y = 0; 
    message.text = "Your account have been logged out."; 
    logButtonLabel.text = "Log-in via Google"; 
    button.SetActive (true); 
    confirmSound.Play(); 

    return; 

} 

// Check for status. 
if (CheckNetwork.checkOnlineStatus()) { 

    Social.localUser.Authenticate ((bool success) => { 

     if (success) { 

      // LOG IN SUCCESS! (Check if the email is identified or not.) 
      if((((PlayGamesLocalUser)Social.localUser).Email != null) || (((PlayGamesLocalUser)Social.localUser).Email != "")) { 

       y = 0; 
       message.text = "Login complete. However, email is not verified or unknown."; 
       logButtonLabel.text = "Log-out"; 
       button.SetActive (true); 
       errorSound.Play(); 

      } else { 

       y = 0; 
       message.text = "Login complete!\nYour email:" + ((PlayGamesLocalUser)Social.localUser).Email; 
       logButtonLabel.text = "Log-out"; 
       button.SetActive (true); 
       confirmSound.Play(); 

      } 

     } else if (!success) { 

      // LOG IN FAILED. 
      if((((PlayGamesLocalUser)Social.localUser).Email != null) || (((PlayGamesLocalUser)Social.localUser).Email != "")) { 

       message.text = "Login failed. Please try again later.\nYour email: ? ? ?"; 

      } else { 

       message.text = "Login failed. Please try again later.\nYour email: " + ((PlayGamesLocalUser)Social.localUser).Email; 

      } 

      y = 0; 
      button.SetActive (true); 
      logButtonLabel.text = "Log-in via Google"; 
      errorSound.Play(); 

     } 

    }); 

} else { 

    message.text = "Connection is lost. Please enable online."; 
    button.SetActive (true); 

} 

} 

И потом, показать событие callback/button в таблице лидеров.

public void OpenLeaderboard() { 

     // Show dialog. 
     y = 0; 
     dialogPanel.SetActive (true); 
     dialogBackground.SetActive (true); 

     // Check for status. 
     if (Social.localUser.authenticated && CheckNetwork.checkOnlineStatus()) { 

      // Updating your highscore... 
      Social.ReportScore ((long)Score.GetScore(), 
       AchievementReference.leaderboard_best_intergalactic_chasers_top_score, 
       (bool success) => { 

        if(success) { 

         // LEADERBOARD APPEARED! 
         dialogPanel.SetActive (false); 
         dialogBackground.SetActive (false); 
         confirmSound.Play(); 
         Social.ShowLeaderboardUI(); 
//      ((PlayGamesPlatform)Social.Active).ShowLeaderboardUI(AchievementReference.leaderboard_best_intergalactic_chasers_top_score); 

        } else { 

         y = 0; 
         message.text = "Load failed. Please try again later."; 
         button.SetActive (true); 
         errorSound.Play(); 

        } 

       }); 

     } else if (!Social.localUser.authenticated) { 

      y = 0; 
      confirmSound.Play(); 
      button.SetActive (true); 

      if (!CheckNetwork.checkOnlineStatus()) { 

       message.text = "Connection not available at a moment."; 

      } else if (CheckNetwork.checkOnlineStatus()) { 

       message.text = "You must login first in order to see the leaderboard."; 

      } 

     } 

    } 

В моей первой попытки, я логин (это показывает приветствие знак иногда) и нажмите кнопку Полноразмерный, но ничего не происходит после 2 минут. Вторая попытка - метод входа в систему log-log-log, и GPG предложила мне выбрать адрес электронной почты, и на экране появится знак приветствия. Тем не менее, все еще ... когда я постучал по кнопке UI, и ничего не происходит через 3 минуты. Я использовал ссылку this, чтобы получить больше идей об эффективном показе пользовательского интерфейса leaderboardc и проверить образец кода. Окончательная попытка, и я предположил, что пользовательский интерфейс лидеров не появится до тех пор, пока я не опубликую созданные игровые службы (раньше он был установлен для тестирования) и посмотрел, работает ли пользовательский интерфейс лидера. Затем, через день или два, использовал тот же метод с первой попытки и все равно не повезло.

Вопрос заключается в следующем: как же пользовательский интерфейс лидеров не будет отображаться во время тестового режима и даже после опубликования игровых сервисов через раздел разработчика Google Play Services? То же самое происходит при отображении в пользовательском интерфейсе достижений. В чем была причина, препятствующая отображению пользовательского интерфейса лидера, даже если я сделал это правильно в настройке? Я сомневаюсь, что это проблемы с подключением к Интернету или сигнал Wi-Fi. Вероятно, проблема связана с большой нагрузкой на очень простые игровые сервисы, которые я сделал. Я создал только два лидеров (рекорд и количество уничтоженных кораблей) и пять достижений по достижению определенного балла и нет. разрушенных кораблей.

Кроме того, помимо отображения проблем пользовательского интерфейса лидеров, также возникает ошибка, которая оставляет строковое значение (фактически, я извлекаю с выбранным адресом электронной почты) нулевым или пустым, даже если он успешно зарегистрирован с помощью последующей учетной записи Google по приветствию имени пользователя в верхней части экрана.

UPDATE После того как я проверил ошибки и предложить какое-то решение от С. Tarik Четин, я проверил на LogCat о входе в систему. Сначала я подумал, что это успешный вход в систему. Тогда я заметил это:

W/Unity (32099): *** [Play Games Plugin DLL] 07/05/16 14:33:54 -07:00 ERROR: E 
xception launching token request: java.lang.ClassNotFoundException: com.google.g 
ames.bridge.TokenFragment 
W/Unity (32099): 
W/Unity (32099): (Filename: ./artifacts/generated/common/runtime/UnityEngineDe 
bugBindings.gen.cpp Line: 37) 
W/Unity (32099): 
W/Unity (32099): *** [Play Games Plugin DLL] 07/05/16 14:33:54 -07:00 ERROR: U 
nityEngine.AndroidJavaException: java.lang.ClassNotFoundException: com.google.ga 
mes.bridge.TokenFragment 
W/Unity (32099): java.lang.ClassNotFoundException: com.google.games.bridge.Tok 
enFragment 
W/Unity (32099):  at java.lang.Class.classForName(Native Method) 
W/Unity (32099):  at java.lang.Class.forName(Class.java:217) 
W/Unity (32099):  at java.lang.Class.forName(Class.java:172) 
W/Unity (32099):  at com.unity3d.player.UnityPlayer.nativeRender(Native Me 
thod) 
W/Unity (32099):  at com.unity3d.player.UnityPlayer.a(Unknown Source) 
W/Unity (32099):  at com.unity3d.player.UnityPlayer$b.run(Unknown Source) 
W/Unity (32099): Caused by: java.lang.NoClassDefFoundError: com/google/games/b 
ridge/TokenFragment 
W/Unity (32099):  ... 6 more 
W/Unity (32099): Caused by: java.lang.ClassNotFoundException: com.google.games 
.bridge.TokenFragment 
W/Unity (32099):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexCla 
ssLoader.java:61) 
W/Unity (32099):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 

W/Unity (32099):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 

W/Unity (32099):  ... 6 more 
W/Unity (32099): at UnityEngine.AndroidJNISafe.CheckException() [0x00000] i 
n <filename unknown>:0 
W/Unity (32099): at UnityEn 

Кроме того, я столкнулся статус сформировать свой LogCat, когда я сделал знак в и один раз.

W/Unity (32099): at UnityEn 
I/Unity (32099): [Play Games Plugin DLL] 07/05/16 14:38:07 -07:00 DEBUG: Star 
ting Auth Transition. Op: SIGN_OUT status: ERROR_NOT_AUTHORIZED 
I/Unity (32099): 
I/Unity (32099): (Filename: ./artifacts/generated/common/runtime/UnityEngineDe 
bugBindings.gen.cpp Line: 37) 
I/Unity (32099): 

И, наконец, вот проблема, возникшая при попытке сразу открыть пользовательский интерфейс лидеров.

W/Unity (32099): *** [Play Games Plugin DLL] 07/05/16 14:40:31 -07:00 ERROR: U 
nityEngine.AndroidJavaException: java.lang.ClassNotFoundException: com.google.ga 
mes.bridge.NativeBridgeActivity 
W/Unity (32099): java.lang.ClassNotFoundException: com.google.games.bridge.Nat 
iveBridgeActivity 
W/Unity (32099):  at java.lang.Class.classForName(Native Method) 
W/Unity (32099):  at java.lang.Class.forName(Class.java:217) 
W/Unity (32099):  at java.lang.Class.forName(Class.java:172) 
W/Unity (32099):  at com.unity3d.player.UnityPlayer.nativeRender(Native Me 
thod) 
W/Unity (32099):  at com.unity3d.player.UnityPlayer.a(Unknown Source) 
W/Unity (32099):  at com.unity3d.player.UnityPlayer$b.run(Unknown Source) 
W/Unity (32099): Caused by: java.lang.NoClassDefFoundError: com/google/games/b 
ridge/NativeBridgeActivity 
W/Unity (32099):  ... 6 more 
W/Unity (32099): Caused by: java.lang.ClassNotFoundException: com.google.games 
.bridge.NativeBridgeActivity 
W/Unity (32099):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexCla 
ssLoader.java:61) 
W/Unity (32099):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 

W/Unity (32099):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 

W/Unity (32099):  ... 6 more 
W/Unity (32099): at UnityEngine.AndroidJNISafe.CheckException() [0x00000] i 
n <filen 

UPDATE Я сделал ошибку, о проверке, если адрес электронной почты пуст или нет. Я сделал неправильное чтение. Хотя, значение адреса электронной почты все еще имеет проблему, и оно должно возвращаться с идентифицированными в строчном значении и оставлять с пробелом, когда оно читается не пустым.

// LOG IN SUCCESS! (Check if the email is identified or not.) 
if((((PlayGamesLocalUser)Social.localUser).Email != null) || (((PlayGamesLocalUser)Social.localUser).Email != "")) { 

    y = 0; 
    message.text = "Login complete!\nYour email:" + ((PlayGamesLocalUser)Social.localUser).Email; 
    logButtonLabel.text = "Log-out"; 
    button.SetActive (true); 
    confirmSound.Play(); 

} else { 

    y = 0; 
    message.text = "Login complete. However, email is not verified or unknown."; 
    logButtonLabel.text = "Log-out"; 
    button.SetActive (true); 
    errorSound.Play(); 

} 
+1

Проверьте решение здесь, в этом вопросе [SO вопрос] (http://stackoverflow.com/questions/36933159/google-play-leaderboard-not-showing-up-after-posting-score-to-leaderboard-in- uni? rq = 1), если это может вам помочь. – KENdi

+0

@KENdi Хорошо. Я дам вам знать, есть ли обновление. Я посмотрю ... –

+0

@ KENdi Основываясь на одной из деталей по ссылке, которую вы мне дали, я уже установил тестер, включая меня. Но лидирующий пользовательский интерфейс пока не отображается даже после того, как я решил опубликовать таблицу лидеров. Кроме того, я использовал только одно хранилище ключей, а не * debug.keystore *. –

ответ

0

Я проверил и наблюдал этот учебник от App Guruz и сделать образец один. Я заметил, как эта игра протекает и использует имя моего пакета, чтобы изменить ее. К счастью, пользовательский интерфейс лидеров наконец появился. Я предполагаю, что есть некоторые определенные проблемы или проблемы с плагинами от Android (некоторые библиотечные папки, такие как firebase и .aar файлы), когда я попытался сравнить мои данные с образцовой проектной формой App Guruz. Возможно, проблемы совместимости.

Если вы хотите сделать пользовательский интерфейс лидеров и прочее и полагаться на this Unity Plugin via GIT website, избегайте этого программного обеспечения. Это не стоит использовать. Полный ошибок, особенно Android-плагинов. Полагайтесь сначала на создание собственного GPG с нуля и наблюдайте за плагинами и банками, так как я сосредоточен только на Android.

Смежные вопросы