我有一个不/不能使用“加载屏幕”的游戏。AssetManager
在广告展示或 IAP 过程发生后,我在使用动态加载资产时遇到了一些问题- 基本上每当 OpenGL 上下文发生变化时。
我已经关注了AssetManager上的 wiki 文章,但每当我尝试加载“新”纹理时,我仍然会看到黑色纹理。
我有一个Singleton
自定义GameAssetManager
,它有一些方便的方法委托给 LibGDX 的AssetManager
.
例如:
public Texture getTexture(String filename) {
if (assets.isLoaded(filename)) {
return assets.get(filename, Texture.class);
} else {
assets.load(filename, Texture.class);
assets.finishLoadingAsset(filename);
Texture texture = assets.get(filename, Texture.class);
sessionAssets.put(filename, texture);
return texture;
}
}
在我的AndroidLauncher
中,我像这样覆盖该onResume
方法:
@Override
protected void onResume() {
super.onResume();
GameAssetManager.instance.resume();
}
该GameAssetManager.resume()
方法只是这样做:
public void resume() {
assets = new AssetManager();
Texture.setAssetManager(assets);
}
当通过 Google 的 IAB 库或广告展示购买商品时,我有一个StoreItemButton
which is a并且会更改它的布局/用户界面组件。Group
在广告展示后,或AndroidLauncher.onResume
调用 IAB 进程完成后,当按钮更改它的 UI 时,它或它的一部分会变成黑色。
如果我通过并预加载所有可能的布局 - 每个按钮最多 4 个(最多 30 个按钮),然后根据情况显示/隐藏它们,它似乎工作,但这是很多开销和错误无缘无故的容易。
在这里的任何帮助将不胜感激。