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)