Carica tutto il contenuto dalla cartella


8

Voglio chiedere, c'è un modo per caricare in xna tutto il contenuto dalla cartella?
Ad esempio, nei miei contenuti ho:

Immagini / eroe
Immagini / auto
Immagini / albero


Voglio fare qualcosa del genere

Dictionary<string,Model> models = new ...

foreach(string name in content.getNames("Images"))
{
    models[name] = content.load<Model>("Images\\" + name);
}

Risposte:


3

C'è una grande pagina MSDN su un utile metodo di accesso alla directory e qualcuno ha posto una domanda simile su StackOverflow .

Fondamentalmente, trova i file che si trovano in quella directory, inizializza un array di quelle dimensioni e quindi scorre i file, caricando le risorse.


Non è statico, ma esiste una proprietà Content nella classe Game che viene comunemente utilizzata in XNA.
Michael Coleman,

In realtà la risposta che hai collegato è un metodo di estensione per la ContentManagerclasse. Quindi lo useresti come Content.LoadContent<Texture2D>("myFolder"). La Contentproprietà on Gameè semplicemente un'istanza della ContentManagerclasse: puoi usare qualsiasi istanza che ti piace. (Niente di tutto ciò è cambiato tra le versioni XNA.)
Andrew Russell,

@Andrew Grazie! Ho cancellato la mia nota falsa e inutile.
Anko,


0

Puoi facilmente elencare tutti i file all'interno di una cartella e quindi caricarli uno per uno. Per impostazione predefinita, tutti i file di contenuto sono archiviati in una cartella accanto all'applicazione principale, quindi è sufficiente verificare il contenuto di quella direzione. È inoltre possibile utilizzare una funzione ricorsiva se si desidera caricare tutti i file da tutte le directory. ecco un piccolo esempio:

string[] files = Directory.GetFiles("content\\Images");
for (int i = 0; i < files.Count(); i++)
{
    textures.Add(Content.load<Texture2D>(files[i].Remove(0,"Content\\".Length)));
}

notare che quando si richiede al sistema di contenuti di caricare una trama, è necessario eliminare la cartella "contenuto" dal nome del file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.