проблема с интеграцией facebook в проект Unity Android

Я пытался интегрировать facebook в свой проект, и мне удалось это сделать с помощью некоторых онлайн-учебников, однако у меня есть одна постоянная проблема...

Код установлен для приостановки игры с помощью

Время.временная шкала = 0; когда открыто окно facebook и возобновить игру, используя Time.timescale = 1; когда это не

но этого просто не происходит, и функция, останавливающая игру, никогда не вызывается...

Вот код:

using UnityEngine;
 using UnityEngine.UI;
 using System.Collections;
 using System.Collections.Generic;
 
 public class FBHolder : MonoBehaviour {
 
     public GameObject UIFBIsLoggedIn;
     public GameObject UIFBNotLoggedIn;
     public GameObject UIFBAvatar;
     public GameObject UIFBUserName;
     
 
     public GameObject ScoreEntryPanel;
     public GameObject ScoreScrollList;
 
     private List<object> scoreslist = null;
 
     private Dictionary<string, string> profile = null;
 
     void Awake()
     {
         FB.Init (SetInit, onHideUnity);
     }
 
     private void SetInit()
     {
         Debug.Log ("FB Init Done");
 
         if(FB.IsLoggedIn)
             {
                 Debug.Log ("FB Logged In");
                 managefbmenus(true);
             }
         else
             {
                 managefbmenus(false);
             }
 
     }
 
     private void onHideUnity(bool isGameShown)
     {
         if(!isGameShown)
             {
                 Debug.Log ("Pause Game");
                 Time.timeScale = 0;
             }
         else
             {
                 Time.timeScale = 1;
             }
     }
 
     public void FBLogin()
     {
         FB.Login ("email,publish_actions", Authcallback);
     }
 
     void Authcallback(FBResult result)
     {
         if(FB.IsLoggedIn)
             {
                 Debug.Log ("FB Login Worked");
                 managefbmenus(true);
             }
         else
             {
                 Debug.Log ("FB Login Failed");
                 managefbmenus(false);
             }
     }
 
     void managefbmenus(bool isLoggedIn)
     {
         if(isLoggedIn)
             {
                 UIFBIsLoggedIn.SetActive(true);
                 UIFBNotLoggedIn.SetActive(false);
                 SetScore();
 
                 //Get profile picture
                 FB.API(Util.GetPictureURL("me", 128, 128), Facebook.HttpMethod.GET, DealWithProfilePicture);
                 FB.API("/me?fields=id,first_name", Facebook.HttpMethod.GET,DealwithUserName);
                 //Get username
             }
         if(!isLoggedIn)
             {
                 UIFBIsLoggedIn.SetActive(false);
                 UIFBNotLoggedIn.SetActive(true);
             }
     }
 
 
     void DealWithProfilePicture(FBResult result)
     {
         if(result.Error != null)
         {
             Debug.Log ("Problem getting profile picture");
             FB.API(Util.GetPictureURL("me", 128, 128), Facebook.HttpMethod.GET, DealWithProfilePicture);
             return;
         }
         Image UserAvatar = UIFBAvatar.GetComponent<Image> ();
         UserAvatar.sprite = Sprite.Create (result.Texture, new Rect(0, 0, 128, 128), new Vector2(0, 0));
     }
 
     void DealwithUserName(FBResult result)
     {
         if(result.Error != null)
         {
             Debug.Log ("Problem getting username");
             FB.API("/me?fields=id,first_name", Facebook.HttpMethod.GET,DealwithUserName);
             return;
         }
         profile = Util.DeserializeJSONProfile(result.Text);
 
         Text UserMsg = UIFBUserName.GetComponent<Text>();
 
         UserMsg.text = "Hello, " + profile ["first_name"];
     }

Любые идеи о том, что может быть причиной этой проблемы?

Кстати: я использую единство 5.


person Mohammed Gameal    schedule 06.08.2015    source источник


Ответы (1)


Я думаю, вам не нужно приостанавливать игру, пока отображается пользовательский интерфейс Facebook. вы можете просто назвать это как:

 FB.Init(SetInit); 
person Umair M    schedule 06.08.2015
comment
Это не сработало бы для меня, потому что окна facebook обычно появляются поверх некоторых кликабельных элементов пользовательского интерфейса, поэтому всякий раз, когда я пытаюсь выполнить действие facebook, я в конечном итоге путаюсь с чем-то под ним. - person Mohammed Gameal; 07.08.2015
comment
вы можете использовать отдельную пустую панель пользовательского интерфейса, чтобы избежать взаимодействия с вашим нижним пользовательским интерфейсом. Вы можете посмотреть пример кода FriendSmash, чтобы понять, где вы ошибаетесь. - person Umair M; 07.08.2015
comment
Прежде всего, я хотел бы поблагодарить вас за попытку помочь, однако я хотел бы отметить, что я начинающий программист и обычно получаю помощь от онлайн-учебников, и именно так я получил всю эту интеграцию с Facebook, которая работает в первую очередь. , и все действительно работает так, как ожидалось, за исключением этого небольшого кусочка. Я попытался посмотреть пример кода friendsmash, который вы указали, но я просто не мог понять, что и куда идет, и я думаю, что рабочий процесс, который они используют, сильно отличается от моего , все, что мне не хватает, это получить функцию onHideUnity для вызова при отображении всплывающего диалогового окна facebook ... - person Mohammed Gameal; 11.08.2015