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)