2
我只是好奇,如果它實際上每次被調用時將資源加載到內存中,或者如果它查找它,發現它是否加載,如果它沒有加載它加載一次,只是保持引用,所以第二次稱它只是引用它呢?XNAs Content.Load <Texture2D>如何運作?
我只是好奇,如果它實際上每次被調用時將資源加載到內存中,或者如果它查找它,發現它是否加載,如果它沒有加載它加載一次,只是保持引用,所以第二次稱它只是引用它呢?XNAs Content.Load <Texture2D>如何運作?
它跟蹤已經加載的內容,並且如果之前加載過相同的對象(這是每個ContentManager),則簡單地返回對同一對象的引用。這適用於所有內容,而不僅僅是紋理。
結果是,只要您需要某些內容,您就可以致電Load
,而無需考慮重複。另一個結果是,你不應該從ContentManager加載內容的Dispose
(改爲使用ContentManager.Unload
)。
如果你想要更多的細節,take a look at this question and answer。
啊謝謝,那是我希望的答案。我曾經使用我自己的內容管理器以這種方式工作,所以我只是假設XNA也是如此。然後我驚慌失措,因爲我意識到這只是一個假設,我不確定它是否保留引用或者它是否加載了重複資產.. – tweetypi 2010-11-22 06:49:59