XNA の 2D ワールドに単純なタイルを表示することから始めて、非常に初歩的なゲーム エンジンのプログラミングを試してみました。DLL を作成するのはこれが初めてで、ContentManager の LoadAll 関数を作成しようとするまではすべてうまくいっていましたが、それが現在の問題につながっています。ファイルが明らかに存在していても、プログラムがコンテンツの読み込み段階に到達しないため、ContentLoadException が発生します。
XNB ファイルは確実に存在し、Content.RootDirectory が設定されています。私はこのようなすべての質問を経験してきましたが、ここと他のサイトの両方で見つけることができ、解決策が見つかりません. 誰かが助けてくれたら、私は永遠に感謝します.
public static Dictionary<String, T> LoadAll<T>(this ContentManager Content, string directory)
{
DirectoryInfo dir = new DirectoryInfo(Content.RootDirectory + "/" + directory);
if (!dir.Exists)
{
throw new DirectoryNotFoundException();
}
Dictionary<String, T> result = new Dictionary<string, T>();
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
string key = Path.GetFileNameWithoutExtension(file.Name);
result[key] = Content.Load<T>(dir.ToString() + "/" + key);
}
return result;
}
明らかに、Content.Load メソッドでエラーが発生しています。
"Error loading "Content\Tiles\bricktile". File not found."
このコードはこちらで見つかりましたが、リスト形式に書き直しても同じエラーが発生します。奇妙な部分は、Error Loading "path to file" が、確実に存在する xnb ファイルへの正しいパスを示していることです。私の DLL のソースが必要な場合は、簡単にアップロードできます。
ありがとう!
編集:私がこれをどのように呼ぶかを本当に言ったはずです:
textures = Content.LoadAll<Texture2D>(tilesFolder);