2014-11-20 40 views
0

我在我的遊戲世界中有一些區域,用於根據區域的可見性和與用戶的接近度對可渲染區域進行分區。如何防止在XNA Game Studios(設計)中加載紋理的副本

爲簡單起見,同樣如此。

class Zone 
{ 
    Textur2D _texture; 
    public Zone(...) 
    { 
     _texture = Content.Load<Texture2D>("Textures\\a"); 
    } 
} 

當前,此結構具有_texture作爲Zone類的成員。現在,如果我需要渲染20個區域。我將不得不加載20個可能是相同紋理的副本。

從我的角度來看,這似乎是非常低效的記憶智慧。

我查看了MSDN和網上的ContentManager(稱爲Content above)類,看起來它具有Unload()功能。讓我相信它是紋理數據的集中來源,這意味着我假設的20個區域中的所有加載的紋理都指向相同的參考紋理,並且在我調用Unload()時將全部處理。

這是這種情況?或者我應該實現一個ContentCache來加載所有這些紋理,並讓我的區域指向它們共享的集中加載紋理?

回答

1

是的,ContentManager處理紋理緩存並防止不必要的重新加載。你可以在這裏找到更多的信息:https://stackoverflow.com/a/9870420/1141432

+0

非常好!這節省了我大量的時間!非常感謝你! – 2014-11-20 20:56:14