在Dictionary中保存Texture2D并在之后检索它

时间:2014-03-31 07:08:50

标签: c# unity3d

我正在将Parse.com中的个人资料图像导入到我的Unity项目中,并将它们插入到Dictionary列表中,其中特定用户ID为关键,图像(Texture2D)为值,如下所示:

public Dictionary<string, string> oppimageslinks = new Dictionary<string, string>();
public Dictionary<string, Texture2D> oppimages = new Dictionary<string, Texture2D>();

foreach(KeyValuePair<string, string> image in oppimageslinks){

    var oppImageRequest = new WWW(image.Value);
    yield return oppImageRequest;
    oppimages.Add(image.Key,oppImageRequest.texture);

}

这部分工作正常。现在,我的问题是如何在之后将Texture2D放入我的gameObject中?以下是我尝试这样做的方法:

if(oppimages.ContainsKey(game.Value[2])){
    UITexture picture = GameObject.Find("Game"+mc+"/Background/ProfileImg").GetComponent<UITexture>();
    picture.mainTexture = oppimages.Value;
}

game.Value [2]是当前的对手用户ID。

尝试执行此操作时出现此错误:

输入System.Collections.Generic.Dictionary<string,UnityEngine.Texture2D>' does not contain a definition for值'并且找不到扩展方法Value' of type System.Collections.Generic.Dictionary'(您是否缺少using指令或程序集引用?)

我不知道如何解决这个问题,希望能在这方面提供一些帮助。

1 个答案:

答案 0 :(得分:2)

我不知道发生了什么。也许你可以试试这个?

if(oppimages.ContainsKey(game.Value[2])){
UITexture picture = GameObject.Find("Game"+mc+"/Background/ProfileImg").GetComponent<UITexture>();
picture.mainTexture = oppimages[game.Value[2]];
}