使用Facebook Unity API时遇到问题,调用FB.Feed()方法。它结束了这个错误:
NullReferenceException: Object reference not set to an instance of an object
UnityEngine.GUILayoutUtility.DoGetRect (UnityEngine.GUIContent content,
UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at
C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/GUILayoutUtility.cs:264)
紧接着是:
ArgumentException: Getting control 1's position in a group with only 1 controls
when doing Repaint
我知道第二个错误通常是由GUI元素在GUI事件调用之间切换等因素引起的。但是,在我的情况下,我根本没有在OnGUI中做任何事情。事实上,由于试图弄清楚问题是什么而撕裂我的头发,我创建了一个全新的项目 - 一个带有基本按钮登录的场景,然后使用FB.Feed“吹嘘”。我已经按照文档显示的确切方式编写了它,并且我得到了完全相同的错误。
我希望也许有人能够对我所缺失或做错的事情有所了解。
这是我的简单准系统场景中的完整代码,也会导致此错误:
void Start()
{
FB.Init(OnInitComplete, OnHideUnity);
}
void OnInitComplete()
{
Debug.Log("FB Initialized");
}
void OnHideUnity(bool isGameShown)
{
Debug.Log("OnHideUnity");
if (!isGameShown)
Time.timeScale = 0;
else
Time.timeScale = 1;
}
void Update()
{
}
void OnGUI()
{
if (!FB.IsLoggedIn)
{
if (GUI.Button(new Rect(10, 10, 100, 30), "Login"))
FBLogin();
}
else
{
if (GUI.Button(new Rect(10, 50, 100, 30), "Brag"))
{
Brag();
}
}
}
void Brag()
{
FB.Feed(
linkCaption: "This is testing the testapp FEED",
picture: "http://myapp.com/myapplogo.jpg",
linkName: "Foo Link",
link: "http://apps.facebook.com/" + FB.AppId + "/?challenge_brag=" + (FB.IsLoggedIn ? FB.UserId : "guest")
);
}
void FBLogin()
{
FB.Login("email, publish_actions", OnLoggedIn);
}
void OnLoggedIn(FBResult result)
{
if (FB.IsLoggedIn)
Debug.Log("Logged in successfully");
}
我的Facebook API是版本140220,我的Unity是4.3.4
我会尽力回答任何其他问题我错过的信息
我也尝试使用FB API版本131022,结果相同。
此问题也发生在FriendSmash示例以及随插件提供的InteractiveConsole示例场景中。
我还应该指出,Window会为帖子打开,并加载图片,链接等。但是例外会阻止其他任何工作
其他信息:我发现当应用程序在实际的Android设备上运行时,Feed帖子没有问题。它似乎只在Unity编辑器中出现此错误。测试用户在Android设备上登录时我遇到了另一个问题 - 如果设备安装了Facebook应用程序本身,他们就不能这样做了,但是这个问题可能需要单独提出问题
答案 0 :(得分:1)
我认为它并没有得到它所要求的所有资源。 docs说不要担心,编辑只能这么做。我得到下面的一个。不过很遗憾,我的设备没有使用,但是如果是的话,我不会太担心它。
NullReferenceException: Object reference not set to an instance of an object
UnityEngine.GUILayoutUtility.DoGetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/GUILayoutUtility.cs:264)
UnityEngine.GUILayoutUtility.GetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style) (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/GUILayoutUtility.cs:257)
Facebook.FbSkinnedDialog.TwoButtonBar (System.String label, System.String cancelLabel)
Facebook.FeedDialog.UpdateDialog (Int32 windowID)
Facebook.FbSkinnedDialog.GeneralUpdateDialog (Int32 windowId)
UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/GUI.cs:1395)