Нужен ли такой класс?
public class ContentCache
{
private readonly ContentManager _content;
private readonly Dictionary<string, Texture2D> _textureCache = new Dictionary<string, Texture2D>();
public ContentCache(ContentManager content)
{
_content = content;
}
public Texture2D Load(string assetName)
{
Texture2D texture = null;
if (!_textureCache.TryGetValue(assetName, out texture))
{
_textureCache[assetName] =
texture = _content.Load<Texture2D>(assetName);
}
return texture;
}
}
Мне любопытно, если ContentManager.Load<Texture2D>()
внутренне кеширует. Я не хочу дважды кэшировать вещи.
Примечание:
Наша игра XNA 2D и будет работать на WP7 и Windows, а также на iOS и OSX с использованием MonoGame .
MonoGame может работать не так, как XNA в Windows, но я, вероятно, могу найти его источник, чтобы выяснить это.