2010-11-22 10 views
2

Ich bin nur neugierig, ob es tatsächlich das Asset in den Speicher lädt jedes Mal, wenn es aufgerufen wird, oder wenn es nachschlägt, wenn es geladen ist und wenn es nicht geladen ist lädt es einmal und nur Referenzen so das zweite Mal ist es Nannte es nur einen Verweis darauf?Wie funktioniert XNAs Content.Load <Texture2D>?

Antwort

2

Es verfolgt, was bereits geladen wurde, und gibt einfach einen Verweis auf das gleiche Objekt zurück, wenn es zuvor geladen wurde (dies ist per-ContentManager). Dies gilt für alle Inhalte, nicht nur für Texturen.

Das Ergebnis ist, dass Sie einfach Load aufrufen können, wenn Sie etwas Inhalt benötigen, ohne über Duplizierung nachzudenken. Das andere Ergebnis ist, dass Sie niemals Content von ContentManager Dispose laden sollten (verwenden Sie stattdessen ContentManager.Unload).

Wenn Sie mehr Details wünschen, take a look at this question and answer.

+0

Ah danke, das war die Antwort, auf die ich gehofft hatte. Ich benutzte meinen eigenen Content-Manager, der auf diese Weise funktionierte, also nahm ich an, dass dies auch für XNA der Fall war. Dann geriet ich in Panik, weil ich realisierte, dass es nur eine Annahme war und ich nicht sicher wusste, ob es Referenzen behielt oder ob es doppelte Assets geladen hatte. – tweetypi

Verwandte Themen