2010-08-19 4 views
5

Dans XNA, lorsque vous appelez Content.Load() pour charger dans une ressource, si vous chargez la même ressource dans plusieurs objets (la texture d'un projectile peut être multiple) obtenez-vous une copie pour chaque objet, ou est-ce que le système ne fait que référencer en interne la même mémoire pour chacun d'eux? Je réalisais qu'ayant un objet Texture2D séparé dans chaque élément peut être un problème de mémoire sur la ligne.XNA Content.Load() Utilisation de la mémoire

Répondre

8

ContentManager met en cache l'objet et renvoie la référence à cet objet lorsque vous essayez de le charger à nouveau.

+1

Donc, si je charge dans un Texture2D en 2 différents objets, puis modifier la données de texture dans un, est-ce que ça change pour les deux? –

3

Oui, la modification des données de texture modifie toutes les textures qui font référence à ces données.

Si vous en avez besoin de plusieurs, dupliquez le fichier d'origine et chargez différentes versions.

+0

hmm pas une solution idéale ... pas moyen de copier les données des structures d'objet en mémoire? –