2010-08-19 34 views
5

in XNA, quando si chiama Content.Load() per caricare in una risorsa, se si carica la stessa risorsa in più oggetti (ad esempio la texture per un proiettile di cui ci possono essere molti) stai ottenendo una copia per ogni oggetto, o il sistema fa semplicemente riferimento internamente alla stessa memoria per ognuno?XNA Content.Load() Utilizzo della memoria

realizzavo che abbia un oggetto Texture2D separato in ogni elemento può essere un problema di memoria lungo la linea.

risposta

8

Il ContentManager memorizza nella cache l'oggetto e tornare il riferimento a tale oggetto quando si tenta di caricare di nuovo.

+1

Quindi, se carico in un Texture2D in 2 diversi oggetti e quindi modificare la dati di trama in uno, viene modificato per entrambi? –

3

Sì, la modifica dei dati della trama cambierà tutte le trame che fanno riferimento a tali dati.

Se sono necessarie più unità, duplicare il file originale e caricare versioni diverse.

+0

hmm non è una soluzione ideale ... non c'è modo di copiare i dati delle strutture degli oggetti in memoria? –