每个人,我必须说我已经在Unity社区发布了这个问题3次(包括答案中心及其论坛),但没人能解决。 我使用TakeScreenShot()函数(它在FB SDK for Unity的InteractiveConsole示例中)截取屏幕截图并将其发布到FB。但是出现了两个问题:
首先:截取的屏幕截图是一个灰色的空白: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");
}
答案 0 :(得分:0)
我希望你解决了你的问题,但我会回答你的问题:
•首先:截取的屏幕截图是一个灰色的空白。
我认为这仅适用于Windows Phone,因为最近在Unity 4.5上,更新并再试一次。 Unity 4.5 Windows Phone Fixes
如果您忘记调用Apply方法,则会发生灰色纹理。如果忘记打电话,你会得到一个灰色的纹理。我看到你正在调用tex.Apply(),但我的猜测是你稍后添加它,你可能会看到一个旧的灰色纹理。您的代码应该按原样运行。如果在更新到4.5或更高版本后仍然获得灰色纹理,请尝试在应用和调用EncodeToPNG()之间等待一段时间,可能在这些调用之间产生。请记住,两者都是昂贵的操作。
•第二:除了我之外,没有人能看到我的帖子,尽管我将照片公之于众。
那是因为你还没有上传(公开)你的Facebook应用程序,在开发过程中你只会看到你和你的开发团队会看到这些消息。顺便说一句,fecebook不会批准硬编码的邮件,所以即使这可能有用,而且我知道你在facebook自己的smaples上编写你的代码,你需要允许用户在发布之前编辑邮件。