我需要替换作为协同程序,迭代器不能有out或ref参数

时间:2014-12-11 12:47:38

标签: unity3d iterator coroutine

我在c#unity中使用www从URL加载纹理。由于存在多个纹理,我想异步加载它们并通过将它们更改为精灵来显示它们在单位4.6图像中,因此我想将Image引用作为out参数传递给协同程序,而协同程序又会产生纹理。 我已经尝试过回调/代理,但这不符合我的目的。 帮我解决这个问题。 我只是希望将这些图像分配给UI元素,并且不希望手动存储它们并在以后分配它们。因为那不是最好的方法。虽然我使用的方法也不是应该的,所以建议我如何能够毫不费力地实现这一目标。

1 个答案:

答案 0 :(得分:1)

使用回调尝试此协程

StartCoroutine(Request(delegate(WWW www){
    print("Success");
    //do something with www.texture here
},delegate(WWW www){
    print("Failure");
}));


IEnumerator Request(System.Action<WWW> SuccessCallback, System.Action<WWW> FailureCallback) {
    WWW www = new WWW("http://my-page.com/");   
    yield return www;
    if(www.error == null){
        SuccessCallback(www);       
    } else {
        FailureCallback(www);
    }       
}