【发布时间】:2014-10-24 23:32:31
【问题描述】:
我正在尝试在我的 Android 游戏的统一项目中使用此代码下载图像。
public static Texture2D userTexture=new Texture2D(64, 64, TextureFormat.DXT5, false); //TextureFormat must be DXT5
public static IEnumerator UserPictureCallback(){
Debug.Log("USerPicture called");
FbDebug.Log("USerPicture called");
WWW url = new WWW("http://i1.wp.com/a0.twimg.com/sticky/default_profile_images/default_profile_1_normal.png?resize=64%2C64");
yield return url;
//profilePic.renderer.material.mainTexture = textFb2;
Debug.Log(url);
url.LoadImageIntoTexture(userTexture);
Debug.Log("Working");
}
然后我尝试使用 DrawTexture 在 GUI 中绘制它。
GUI.DrawTexture(new Rect(5,0,50,50),FB.userTexture,ScaleMode.StretchToFill, false, 0.0f);
但是图像纹理没有被下载,或者至少它没有在 GUI 中显示。有人可以帮我解决这个问题吗?
【问题讨论】:
-
你是用 StartCoroutine 调用 UserPictureCallback 吗?你得到那个“工作”调试消息了吗?您还可以使用 isDone 等属性来了解更多信息:docs.unity3d.com/Documentation/ScriptReference/WWW.html
-
已经试过这段代码,它工作得很好。所以一定有一些你没有向我们展示的东西。你能展示你的代码的其余部分是什么样的以及你是如何调用它的吗?唯一的“问题”是使用 DXT5 时图像变成粉红色,而不是使用 RGBA32 显示的正确绿色。
-
嘿@Bart 我尝试使用 RGBA32 格式,但在这种情况下 drawtexture 没有显示任何内容。但是当我尝试制作 RGB24 时,我得到了这张像素化的图片(我正在分享截图的链接)。所以现在我不确定这是格式问题还是图像本身没有下载。请查看以下链接并帮助我解决这个疑问。如果格式不正确,请告诉我要使用的正确纹理。 dl.dropboxusercontent.com/u/29386849/2013-11-25%2000.35.12.png
-
@radical 是的朋友,正如您在上面的代码中看到的那样,我编写的产量与您提到的统一脚本手册链接中给出的完全一样。不,我认为我不会在调试中“工作”。但是我也怀疑自 Unity 4.2 以来我是否能够阅读所有调试:P 我认为所有调试都以详细的统一标签打印出来。如果我错了,请纠正我。