2015-03-08 3 views
0

Я сделал несколько 3d моделей для своего небольшого проекта. Но когда я загружаю их с помощью менеджера активов, logcat дает мне ошибку.не может загрузить 3d модель в libgdx

Существует код:

public InGameScreen(TinyBattles game) { // screen constructor 

    ... 

    assets = new AssetManager(); 
    assets.load("3d/tankbody6.obj", Model.class); 
    loading = true; 

} 

private void doneLoading() { 
    Model tank = assets.get("3d/tankbody6.obj", Model.class); 

    ModelInstance tankInstanse = new ModelInstance(tank); 
    tankInstanse.transform.setToTranslation(0, 0, 0); 

    tankA.instance = tankInstanse; 
    loading = false; 
} 

Ошибка:

03-08 18:12:05.799 12397-12412/com.tinybattles003.game.android E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 22871 
Process: com.tinybattles003.game.android, PID: 12397 
com.badlogic.gdx.utils.GdxRuntimeException: Asset not loaded: 3d/tankbody6.obj 
     at com.badlogic.gdx.assets.AssetManager.get(AssetManager.java:123) 
     at com.tinybattles003.game.screens.InGameScreen.doneLoading(InGameScreen.java:92) 
     at com.tinybattles003.game.screens.InGameScreen.render(InGameScreen.java:108) 
     at com.badlogic.gdx.Game.render(Game.java:46) 
     at com.tinybattles003.game.general.TinyBattles.render(TinyBattles.java:22) 
     at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:422) 
     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523) 
     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240) 

Это не только о точной модели, я попытался загрузить каждый из них это тот же результат. Но самое странное, что я могу загрузить модель в любом проекте, но это.

+0

Нужно больше кода, где оценивается загружаемая переменная? Вы называете метод обновления менеджера активов? – Gibbo

+2

Никогда не используйте файлы .obj. – Xoppa

+0

Я также пробовал .g3db, но все равно –

ответ

0

Просто убедитесь, что ваша модель загружена из папки с активацией, вызывая метод finishLoading(). Он приостанавливает метод рендеринга до полной загрузки модели.

assets = new AssetManager(); 
assets.load("3d/tankbody6.obj", Model.class); 
loading = true; 
assets.finishLoading()