纹理未在按钮上分配给GameObject单击

时间:2015-07-24 04:47:28

标签: c# unity3d textures

我挂了一些我无法解决的事情,我真的可以用一双新鲜的眼睛。我正在加载一组图像,将其中一个分配给LoadGallery.cs中的纹理。然后在LoadImage中我有一个按钮,当点击时运行LoadImg但是当我点击按钮时没有任何反应。纹理不会分配给GameObject。我也没有收到任何错误。当它完全在IEnumerator函数中时,脚本工作正常,但当我把它拉出到另一个脚本中时,我什么都没得到。我错了什么?

LoadGallery.cs

public Texture2D tex;

// Use this for initialization
void Start () {
    StartCoroutine("LoadAllImages");
}

IEnumerator LoadAllImages()
{
    string[] filePaths = Directory.GetFiles(@"/Users/kenmarold/Screenshots/TATUS/", "*.png");       
    WWW www = new WWW("file://" + filePaths[0]);                                            
    yield return www;                                                                               
    Texture2D tex = new Texture2D(512,512);                                                         
    www.LoadImageIntoTexture(tex);
}

LoadImage.cs

void LoadImg() 
{
    GameObject galleryLoader = GameObject.FindGameObjectWithTag("GalleryLoader");
    LoadGallery loadGallery = galleryLoader.GetComponent<LoadGallery>();

    Rect rct = new Rect(0, 0, loadGallery.tex.width, loadGallery.tex.height);
    Vector2 pvt = new Vector2(0.5f, 0.5f);

    GameObject screenShotImg = GameObject.FindGameObjectWithTag("screenshot");
    Image img = screenShotImg.GetComponent<Image>();
    img.sprite = Sprite.Create(loadGallery.tex, rct, pvt);
}

1 个答案:

答案 0 :(得分:0)

我看不出你在做什么有什么不对。这些是我经验中常见的错误:
1.您可能忘记将功能LoadImg分配给按钮 2. UI对象的大小&#34;截图&#34;太小。尝试分配一些虚拟图像以查看它是否实际显示了某些内容 3.加载图库时可能会有一些异常。尝试检查www.error。仔细调试。

祝你工作顺利。