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)