2010-08-19 17 views
5

En XNA, al llamar a Content.Load() para cargar en un recurso, si carga el mismo recurso en varios objetos (es decir, la textura de un proyectil de la que puede haber muchos) ¿Obtiene una copia para cada objeto o el sistema hace referencia internamente al mismo recuerdo para cada uno?XNA Content.Load() Uso de memoria

Me estaba dando cuenta de que tener un objeto Texture2D separado en cada elemento puede ser un problema de memoria en el futuro.

Respuesta

8

ContentManager guardará en caché el objeto y devolverá la referencia a ese objeto cuando intente cargarlo nuevamente.

+1

lo tanto, si me carga en un Texture2D en 2 objetos diferentes y luego modificar el datos de textura en uno, ¿se cambia para ambos? –

3

Sí, la modificación de los datos de textura cambiará todas las texturas que hacen referencia a esos datos.

Si necesita varias copias, duplique el archivo original y cargue diferentes versiones.

+0

hmm no es una solución ideal ... ¿no hay forma de copiar los datos de estructuras de objeto en la memoria? –