Eu quero perguntar, existe maneira de carregar em xna todo o conteúdo da pasta?
Por exemplo, no meu conteúdo, tenho:
Images / hero
Images / car
Images / tree
Quero fazer algo assim
Dictionary<string,Model> models = new ...
foreach(string name in content.getNames("Images"))
{
models[name] = content.load<Model>("Images\\" + name);
}
Respostas:
Há uma ótima página do MSDN sobre um método útil de acesso ao diretório e alguém fez uma pergunta semelhante no StackOverflow .
Basicamente, encontre os arquivos que estão nesse diretório, inicialize uma matriz desse tamanho e, em seguida, repita esses arquivos, carregando nos recursos.
fonte
ContentManager
classe. Então você usaria comoContent.LoadContent<Texture2D>("myFolder")
. AContent
propriedade onGame
é simplesmente uma instância daContentManager
classe - você pode usar qualquer instância que desejar. (Nada sobre esta mudou entre as versões XNA.)http://xbox.create.msdn.com/en-US/sample/contentmanifestextensions
É um tutorial sobre como carregar conteúdo em tempo de execução. Ele mostra como gerar uma lista automaticamente usando o pipeline de conteúdo.
fonte
Você pode facilmente listar todos os arquivos dentro de uma pasta e carregá-los um por um. Por padrão, todos os arquivos de conteúdo são armazenados em uma pasta ao lado do aplicativo principal, portanto, você só precisa verificar o conteúdo dessa direção. Você também pode usar uma função recursiva se desejar carregar todos os arquivos de todos os diretórios. aqui está uma pequena amostra:
observe que, quando você estiver solicitando que o sistema de conteúdo carregue uma textura, solte a pasta "content" do nome do arquivo.
fonte