我需要管理两种纹理
一个位于Gdx.files.internal
,一个位于Gdx.files.local
。
但似乎API限制我管理其中一个,而不是同时管理两个。
manager = new AssetManager( - 只需一个解析器 - `);
manager.setLoader(TextureAtlas.class,new TextureAtlasLoader( - 只需一个解析器 - ));
这个只需要一位经理:
Texture.setAssetManager(经理);
有没有办法管理两个解析器? 或者为两个地点建一个解析器?
谢谢!
答案 0 :(得分:2)
您可以编写一个自定义FileHandleResolver
,首先检查该文件是否存在于第一个位置,如果该文件不存在,请检查第二个位置。
也许是这样的:
class MyFileHandleResolver implements FileHandleResolver {
public FileHandle resolve(String fileName) {
FileHandle localHandle = Gdx.files.local(fileName);
if (localHandle.exists())
return localHandle;
else
return Gdx.files.internal(fileName);
}
}