我在Facebook Unity SDK 5.0.3中使用Unity3d 4.3.4f1。 (我无法使用5.1工作......导入该软件包时出错,但以前的软件包没有。)
我遇到的问题也出现在Facebook Unity SDK 4.3中。我认为升级可能会解决它......也许它只是一个愚蠢的设置?
无论如何,我能够登录我的游戏并玩游戏,但是没有其他人可以......如果有朋友试试,我的妻子,我制作了一个虚假的Facebook帐户......如果我标记它们并不重要作为测试人员与否...我已尝试将应用程序提供给公众或不公开......似乎没什么关系......我是唯一可以登录的人...
我非常简单,一个GUI.Button:
if (!FB.IsLoggedIn) {
//START
if (GUI.Button(new Rect(Screen.width * 0.55f, Screen.height * 0.7f, Screen.height * 0.2f * (float)1920/700, Screen.height * 0.2f), "", "Enter"))
{
if (!FB.IsLoggedIn) {
Init.Start();
}
}
return;
}
我是唯一一个可以点击该按钮并实际发生的事情......对于其他所有人来说,点击按钮根本就没有...它只是坐在那里......我可以添加一个调试器,它会告诉我当用户点击确认他们正在点击它的按钮时,我只是坐在那里......就像," Init.Start()"是以某种方式失败,永远不会得到他们的" FB.IsLoggedIn"被标记为真......
此时任何想法都会受到青睐!我有6个月的发展,NOBODY可以测试它,但我...我基本上没有游戏! :(
答案 0 :(得分:1)
您的应用可能尚未向公众分享:https://developers.facebook.com/apps/ [APP-ID] / review-status /
如果是这样,那就意味着其他人无法登录,因为从技术上来说他们还不能访问它。
你还遇到了什么问题?
答案 1 :(得分:0)
感谢@Brian Jew,答案就在他的回答中。我正在移动到这里,以便其他人更容易找到:
答案很简单...... Init.Start正在调用FB.Init而不是FB.Login。这是更新的代码:
在任何启动游戏的脚本中,您都可以使用" start"按钮:
if (!FB.IsLoggedIn) {
//START
if (GUI.Button(new Rect(Screen.width * 0.55f, Screen.height * 0.7f, Screen.height * 0.2f * (float)1920/700, Screen.height * 0.2f), "", "Enter"))
Init.Start();
return;
}
}
然后" Init"是我自己的自定义脚本,只运行一些初始启动的东西。里面是这个:
public static void Start(){
FB.Init(OnInitComplete, OnHideUnity);
}
private static void OnInitComplete()
{
dMsg += "FB.Init completed: Is user logged in? " + FB.IsLoggedIn;
if (!FB.IsLoggedIn) FB.Login(); //<--- Magic login code! :P
isInit = true;
}
private static void OnHideUnity(bool isGameShown)
{
dMsg += "Is game showing? " + isGameShown;
}