Quiero preguntar, ¿hay alguna forma de cargar en xna todo el contenido de la carpeta?
Por ejemplo, en mi contenido tengo:
Images / hero
Images / car
Images / tree
Quiero hacer algo como esto
Dictionary<string,Model> models = new ...
foreach(string name in content.getNames("Images"))
{
models[name] = content.load<Model>("Images\\" + name);
}
Respuestas:
Hay una gran página de MSDN sobre un método útil de acceso al directorio y alguien ha hecho una pregunta similar sobre StackOverflow .
Básicamente, encuentre los archivos que están en ese directorio, inicialice una matriz de ese tamaño y luego repita esos archivos, cargando los recursos.
fuente
ContentManager
clase. Entonces lo usarías comoContent.LoadContent<Texture2D>("myFolder")
. LaContent
propiedad enGame
es simplemente una instancia de laContentManager
clase: puede usar cualquier instancia que desee. (Nada de esto ha cambiado entre versiones de XNA.)http://xbox.create.msdn.com/en-US/sample/contentmanifestextensions
Es un tutorial sobre cómo cargar contenido en tiempo de ejecución. Muestra cómo generar una lista automáticamente mediante la canalización de contenido.
fuente
Puede enumerar fácilmente todos los archivos dentro de una carpeta y luego cargarlos uno por uno. Por defecto, todos los archivos de contenido se almacenan en una carpeta justo al lado de su aplicación principal, por lo que solo necesita verificar el contenido de esa dirección. También puede usar una función recursiva si desea cargar todos los archivos de todos los directorios. Aquí hay una pequeña muestra:
tenga en cuenta que cuando solicita al sistema de contenido que cargue una textura, debe soltar la carpeta "contenido" del nombre del archivo.
fuente