Unity3d - 2问题与Facebook分享在windows Phone

本文关键字:分享 windows Phone Facebook 问题 Unity3d | 更新日期: 2023-09-27 18:01:21

各位,
我必须说我已经在Unity社区(包括答案中心和它的论坛)发布了这个问题3次了,但是没有人能解决它。我使用TakeScreenShot()函数(它在用于Unity的facebook SDK的InteractiveConsole示例中)截取屏幕截图并将其发布到facebook。但是出现了两个问题:

  • 首先:截图是一个灰色的空白,像这样:http://i7.minus.com/iXiHlCcSWaVfC.jpg

  • 第二:没有人可以看到我的帖子,虽然我设置照片为公开

我该如何解决这些问题?

下面是TakeScreenShot()函数的代码:
private IEnumerator TakeScreenshot() {
    yield return new WaitForEndOfFrame();
    var width = Screen.width;
    var height = Screen.height;
    var tex = new Texture2D(width, height, TextureFormat.RGB24, false);
    // Read screen contents into the texture
    tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);
    tex.Apply();
    byte[] screenshot = tex.EncodeToPNG();
    var wwwForm = new WWWForm();
    wwwForm.AddBinaryData("image", screenshot, "InteractiveConsole.png");
    wwwForm.AddField("message", "herp derp.  I did a thing!  Did I do this right?");
    FB.API("me/photos", Facebook.HttpMethod.POST, Callback, wwwForm);
    Debug.Log("done");
}

Unity3d - 2问题与Facebook分享在windows Phone

我希望你解决了你的问题,但我还是会回答你的问题:

•第一:截图是灰色空白

我认为这只适用于Windows Phone,因为最近Unity 4.5,更新并再次尝试。Unity 4.5 Windows Phone修复

如果你忘记调用Apply方法,就会出现灰色纹理。如果忘记打电话,你最终会得到一个灰色的纹理。我看到你正在调用text . apply(),但我的猜测是你后来添加了它,你可能会看到一个旧的灰色纹理。您的代码应该按原样工作。如果您在更新到版本4.5或更高版本后仍然得到灰色纹理,请尝试在Apply和调用EncodeToPNG()之间等待一段时间,可能会在这些调用之间产生。请记住,这两种操作都是昂贵的。

•第二:没有人可以看到我的帖子,除了我,虽然我设置照片公开。

这是因为你的facebook应用程序还没有上线(公开),在开发过程中,只有你和你的开发团队才能看到消息。顺便说一下,facebook不会批准硬编码的消息,所以即使这可能有效,我知道你基于facebook自己的示例代码,你需要允许用户在发布之前编辑消息。