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>?
2
A
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.
Verwandte Themen
- 1. Wie MissingMethodException während Content.Load <Texture2D> in Xamarin Studio auf MacOS X zu beheben?
- 2. Was ist Druck << EOF; und wie funktioniert es?
- 3. Overloading operator << nicht funktioniert
- 4. Wie funktioniert OfType <T>() arbeiten?
- 5. Wie funktioniert <iostream>? (C++)
- 6. Wie funktioniert "<% = request.getContextPath()%>" besser als "../"
- 7. <button formtarget = "_ blank"></button> nicht funktioniert
- 8. getRuntime(). Exec (<command>): <command> funktioniert nicht
- 9. Warum ist "<?" funktioniert nicht mehr und stattdessen funktioniert nur "<? php"?
- 10. Überladen << Operator mit ostream funktioniert nicht. Warum?
- 11. Tag <label> funktioniert nicht für <input>
- 12. MySQL zwischen Anweisung und> = <= ><nicht funktioniert
- 13. LINQ Fluent NHibernate .Contains() funktioniert nicht in QueryOver <> funktioniert aber in Query <>
- 14. Kleinschreibung <--> Großbuchstabe funktioniert nicht wie geplant
- 15. Wie funktioniert IEnumerable <T>. ToArray() arbeiten?
- 16. Wie funktioniert das Blob: Protokoll als <video> Quelle?
- 17. Schienen Rendern JSON mit <% = funktioniert nicht wie erwartet
- 18. vector <unique_ptr> resizing mit push_back - wie funktioniert es?
- 19. Wie funktioniert mvn --encrypt-master-password <password>?
- 20. Wie funktioniert EqualityComparer <T> .Default intern?
- 21. Wie funktioniert die Funktion `<$` in der Functor-Klasse?
- 22. Wie funktioniert AsyncTask <String, Void, Void>?
- 23. Wie funktioniert die RemoveRange() - Methode in einer Liste <>?
- 24. Wie funktioniert die Rückwärts-Pipeline (d. H. "<|") Wirklich?
- 25. <error-page> Setup funktioniert nicht
- 26. HTML2PDF <zeichen funktioniert nicht in php
- 27. log4net smtpappender <from> nicht funktioniert
- 28. Grails <Feldtyp = "Nummer" ...> funktioniert nicht ...?
- 29. Wie überlade ich den Operator <<?
- 30. Liste <T> .Except (Liste <T>) funktioniert nicht wie erwartet
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