Unity C#用www加载纹理

时间:2013-05-29 11:01:27

标签: c# web unity3d ienumerator

我正在制作一款通过阅读XML来加载关卡的游戏。那部分工作正常,但我无法加载Textrues。他没有给出错误或类似的东西。没有textrue,它是一个空对象。

这是读取xml的代码:

void ReadXML(){

    XmlDocument doc = new XmlDocument();
    doc.Load("world/world.xml");

    //load all textrues
    XmlNodeList elemList = doc.GetElementsByTagName("textrue");
    _matrial = new Texture[elemList.Count];
    for (int i=0; i < elemList.Count; i++){
        LoadTexture(elemList[i].InnerXml);
        _matrial[i] = loaded;
        //_matrial[i] = Resources.Load(elemList[i].InnerXml) as Texture;
        Debug.Log(_matrial[i] + " <> " + elemList[i].InnerXml);
    }


    ///.... here he loads al object, that works fine

}

这是LoadTexture方法:

IEnumerator LoadTexture(string url) {
    WWW www = new WWW(url);
    yield return www;
    loaded = www.texture;
}

谢谢!

1 个答案:

答案 0 :(得分:0)

必须等到textare加载才能使用它。所以函数应该是这样的:

IEnumerator LoadTexture(string url) {
    WWW www = new WWW(url);
    while (!www.isDone){
        yield return null;
    }
    loaded = www.texture;
}