Я пытаюсь интегрировать 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.
Это не будет работать для меня, потому что Фейсбук окна обычно оказываются на вершине некоторых интерактивных элементов пользовательского интерфейса, так всякий раз, когда я пытаюсь сделать действие facebook Я в конечном итоге баловаться с чем-то под Это. –
вы можете использовать отдельную пустую панель ui, чтобы избежать взаимодействия с вашим пользовательским интерфейсом. Вы можете увидеть [Пример кода FriendSmash] (https://github.com/fbsamples/friendsmash-unity), чтобы выяснить, где вы ошибаетесь. –
Прежде всего, я хотел бы поблагодарить вас за то, что вы пытаетесь помочь , однако я хотел бы указать, что я новичок-программист и обычно получаю помощь от онлайн-учебников, а именно, как я получил эту интеграцию в facebook, которая работает в на первом месте, и все действительно работает так, как ожидалось, за исключением этого небольшого количества. Я попытался посмотреть пример кода, который вы указали, и я просто не мог следить за тем, что происходит, и я думаю, что рабочий процесс, который они используют намного отличается от моего, все, что мне не хватает, - это заставить функцию onHideUnity вызываться, когда отображается всплывающее диалоговое окно facebook ... –