Иногда (не всегда, в большинстве случаев он работает безупречно), я поймаю исключение, которое я предоставил, когда он не загружает Texture2D.Загрузка Texture2D непостоянно сбой
public static class Extras
{
public static class Load
{
private static Dictionary<string, Texture2D> Textures;
public static Texture2D Texture(string Path)
{
if (Textures == null) Textures = new Dictionary<string, Texture2D>();
if (Textures.ContainsKey(Path)) return Textures[Path];
else
{
try { Textures.Add(Path, Service<ContentManager>().Load<Texture2D>(Path)); return Textures[Path];
catch { throw new ArgumentNullException(string.Format("Failed to load Texture2D from \"{0}\"!", Path)); }
}
return null;
}
}
public static class Services
{
private static GameServiceContainer Container;
public static T Get<T>() { return (T)Container.GetService(typeof(T)); }
public static void Add<T>(T Service) { if (Container == null) Container = new GameServiceContainer(); Container.AddService(typeof(T), Service); }
public static void Remove<T>() { Container.RemoveService(typeof(T)); }
}
public static T Service<T>() { return Services.Get<T>(); }
}
-
Когда игра нагрузка:
Extras.Services.Add<ContentManager>(Content);
Texture2D Texture = Extras.Load.Texture("Textures\\Player");
Теперь в большинстве случаев это работает, но иногда я получаю исключение (при первой загрузке текстуры в игру).
Почему это непоследовательно не загружает Texture2D?
Что именно исключение? –
@Silveor "catch {throw new ArgumentNullException (string.Format (" Не удалось загрузить Texture2D из \ "{0} \"! ", Path));}" –