LibGDX:AssetManager在队列中有资产并正在更新,但永远不会加载

时间:2015-10-18 09:11:09

标签: java libgdx assets

FIX:将模型转换为g3db格式解决了这个问题。

我使用的是Java 1.8.0_60,Android 6.0

所以我决定在LibGdx中使用3D,我遇到了一些与AssetManager有关的奇怪问题。

到目前为止,我一直在完全按照教程进行操作,并且正在尝试加载我从其中一个教程中获得的.obj模型。

我正在创建AssetManager并将.obj文件添加到队列中,Model.class作为load方法的第二个参数。

然后我等待资产加载,在AssetManager上调用update()每次渲染以检查它是否已加载。

现在,我的printlns看起来很像这样:

队列中的资产:1

进展:0.0

我的渲染方法如下所示(在GameRenderer类中):

public void render(){

    if(!created){
        return;
    }

    if(assets.loading() && assets.update()){
        assets.bindModels();
    }
    camController.update();

    Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);

    modelBatch.begin(cam);
    modelBatch.render(assets.getInstances(), environment);
    modelBatch.end();

}

我的资产加载方法如下所示(在AssetLoader类中):

public void loadModels(){   
    assets.load("ship.obj", Model.class);
    loading = true;
}

public void bindModels() {
    ModelInstance model = new ModelInstance(assets.get("ship.obj", Model.class));
    instances.add(model);
    loading = false;
}

public boolean update(){
    System.out.println("Assets in queue: " + assets.getQueuedAssets());
    return assets.update();
}

没有例外被抛出。

我的猜测是有些东西导致AssetManager卡住了,但我迷失了可能导致它的原因。非常感谢任何帮助。

谢谢!

编辑:

如果我在AssetManager上调用finishLoading(),它会阻止资产全部完成,游戏会冻结。

0 个答案:

没有答案