LibGDX AssetManager和黑色纹理&字体

时间:2016-10-26 22:25:33

标签: libgdx scene2d asset-management

我有一个没有/不能使用“载入画面”的游戏。我在使用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);
}

我有StoreItemButton Group,当通过Google的IAB库或广告展示购买商品时,会更改其布局/ ui组件。

广告显示后,或者IAB流程完成AndroidLauncher.onResume被调用,当按钮更改它的UI时,它或部分只是变黑。

如果我经历并预先加载所有可能的布局 - 每个按钮最多4个(最多30个按钮),然后根据情况显示/隐藏它们,它似乎工作,但这是很多没有充分理由的开销和错误。

非常感谢任何帮助。

0 个答案:

没有答案