私のゲームでは、マネージャリソースがテクスチャ、サウンド、フォントなどを好むリソースクラスを作っています。このImageListクラスは、必要に応じてランタイム中に自動的にテクスチャを読み込みます。このImageListクラスはどのようにしてリソースを使用できるようにするのですか?
class TextureList
{
private Dictionary<string, Texture> _list;
public Texture this[string name]
{
get
{
Texture tex;
bool success = List.TryGetValue(name, out tex);
if (!success)
{
tex = Resources.LoadImage(name);
List[name] = tex;
}
return tex;
}
}
protected Dictionary<String, Texture> List
{
get
{
return _list ?? new Dictionary<String, Texture>();
}
}
}
今、私は音にすべてのテクスチャを変更したり、フォント(と重複したコードの多くを書く)の手間をかけずにフォントリストまたはSoundListクラスを作ることができるように、このクラスは汎用的にするようにしたいです。誰でもこのジェネリック版を作るのを手伝ってくれますか?
あなたのコードは常に(_listが設定されることはありません新しいリストを作成
今は、異なるリソースのための具体的な実装を提供します任意の値に) –
参照:[スレッドセーフメモ](http://stackoverflow.com/questions/1254995/thread-safe-memoization)。スレッド安全性が必要ない場合は、Wes Dyerの[post](http://blogs.msdn.com/b/wesdyer/archive/2007/01/26/function-memoization.aspx)のメモを参照してください。 – Ani
@VirtualBlackFoxいいキャッチ!今すぐ変更する。 – Dlaor