Ich möchte fragen, gibt es eine Möglichkeit, alle Inhalte aus dem Ordner in xna zu laden?
Zum Beispiel habe ich in meinem Inhalt:
Bilder / Heldenbilder
/ Auto
Bilder / Baum
Ich möchte so etwas machen
Dictionary<string,Model> models = new ...
foreach(string name in content.getNames("Images"))
{
models[name] = content.load<Model>("Images\\" + name);
}
Antworten:
Es gibt eine großartige MSDN-Seite über eine nützliche Verzeichniszugriffsmethode, und jemand hat eine ähnliche Frage zu StackOverflow gestellt .
Suchen Sie im Grunde genommen die Dateien in diesem Verzeichnis, initialisieren Sie ein Array dieser Größe und durchlaufen Sie diese Dateien, wobei Sie die Ressourcen laden.
quelle
ContentManager
Klasse. Sie würden es also als verwendenContent.LoadContent<Texture2D>("myFolder")
. DieContent
Eigenschaft onGame
ist einfach eine Instanz derContentManager
Klasse - Sie können jede beliebige Instanz verwenden. (Nichts daran hat sich zwischen den XNA-Versionen geändert.)http://xbox.create.msdn.com/en-US/sample/contentmanifestextensions
Es ist ein Tutorial zum Laden von Inhalten zur Laufzeit. Es zeigt, wie mithilfe der Inhaltspipeline automatisch eine Liste erstellt wird.
quelle
Sie können ganz einfach alle Dateien in einem Ordner auflisten und sie dann einzeln laden. Standardmäßig werden alle Inhaltsdateien in einem Ordner direkt neben Ihrer Hauptanwendung gespeichert, sodass Sie nur nach dem Inhalt dieser Richtung suchen müssen. Sie können auch eine rekursive Funktion verwenden, wenn Sie alle Dateien aus allen Verzeichnissen laden möchten. Hier ist ein kleines Beispiel:
Beachten Sie, dass Sie den Ordner "content" aus dem Dateinamen löschen sollten, wenn Sie das Inhaltssystem zum Laden einer Textur auffordern.
quelle