2015-08-06 3 views
0

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

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

Time.timescale = 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"]; 
 
    }

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

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

ответ

0

Я думаю, что вам не нужно, чтобы приостановить игру, пока отображается Facebook UI. Вы можете назвать его как:

FB.Init(SetInit); 
+0

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

+0

вы можете использовать отдельную пустую панель ui, чтобы избежать взаимодействия с вашим пользовательским интерфейсом. Вы можете увидеть [Пример кода FriendSmash] (https://github.com/fbsamples/friendsmash-unity), чтобы выяснить, где вы ошибаетесь. –

+0

Прежде всего, я хотел бы поблагодарить вас за то, что вы пытаетесь помочь , однако я хотел бы указать, что я новичок-программист и обычно получаю помощь от онлайн-учебников, а именно, как я получил эту интеграцию в facebook, которая работает в на первом месте, и все действительно работает так, как ожидалось, за исключением этого небольшого количества. Я попытался посмотреть пример кода, который вы указали, и я просто не мог следить за тем, что происходит, и я думаю, что рабочий процесс, который они используют намного отличается от моего, все, что мне не хватает, - это заставить функцию onHideUnity вызываться, когда отображается всплывающее диалоговое окно facebook ... –

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