AssetManager

AssetManager 是一個可以幫助你管理資產的類。

首先,你需要建立一個例項:

AssetManager am = new AssetManager();

在初始化之後,在渲染任何內容之前,你需要獲取資源:

am.load("badlogic.jpg", Texture.class);//Texture.class is the class this asset is of. If it is a 
//sound asset, it doesn't go under Texture. if it is a 3D model, it doesn't go under Texture.class
//Which class added depends on the asset you load

//... other loading here ...//

//when finished, call finishLoading:
am.finishLoading();

現在,無論你想要獲得什麼,我都知道:

Texture texture = am.get("badlogic.jpg");
//Ready to render! The rendering itself is in the normal way

使用 AssetManager 可以將它們載入到 AssetManager 的記憶體中,然後根據需要多次獲取它們。

為什麼要使用 AssetManager? (來自維基 ):

AssetManager(程式碼)可幫助你載入和管理資產。由於以下不錯的行為,這是載入資產的推薦方法:

  • 大多數資源的載入是非同步完成的,因此你可以在載入時顯示反應性載入螢幕
  • 資產參考計算。如果兩個資產 A 和 B 都依賴於另一個資產 C,則在 A 和 B 被處置之前不會處置 C. 這也意味著,如果你多次載入資產,它實際上將被共享,只佔用一次記憶體!
  • 一個儲存所有資產的地方。
  • 允許透明地實現快取之類的東西(參見下面的 FileHandleResolver)