LIbgdx - 为什么 AssetManager 不工作?
LIbgdx - Why is AssetManager not working?
我尝试过使用 Asset Manager 加载一些资产。一切正常,除了一部分。
这是我的代码
我的 AssetHandler Class(包含 assetManager)
public class AssetHandler {
public static AssetManager manager;
public static String wallFile = "3d/wall.g3db";
public static String floorFile = "3d/floor.g3db";
public static String stairsFile = "3d/stairs.g3db";
public static String characterFile = "3d/character.g3db";
public static void load() {
manager = new AssetManager();
manager.load(wallFile, Model.class);
manager.load(floorFile, Model.class);
manager.load(stairsFile, Model.class);
manager.load(characterFile, Model.class);
}
public static void dispose() {
manager.clear();
manager.dispose();
}
public static void dispose(String fileName) {
manager.unload(fileName);
}
}
当我尝试使用该文件时,我写道:
model = AssetHandler.manager.get(AssetHandler.characterFile, Model.class);
model = AssetHandler.manager.get(AssetHandler.wallFile, Model.class);
一切正常,但角色文件不正常
其他文件有,但只有这个文件没有
请帮助我不明白为什么
没有弹出错误/异常
解决方案:
添加
manager.finishLoading();
在 load
方法的末尾。
如果你想异步执行,你应该在渲染循环中使用manager.update()
。
有关详细信息,请参阅 this。
尽量避免public字段和静态方法。(与问题无关)
我尝试过使用 Asset Manager 加载一些资产。一切正常,除了一部分。 这是我的代码
我的 AssetHandler Class(包含 assetManager)
public class AssetHandler {
public static AssetManager manager;
public static String wallFile = "3d/wall.g3db";
public static String floorFile = "3d/floor.g3db";
public static String stairsFile = "3d/stairs.g3db";
public static String characterFile = "3d/character.g3db";
public static void load() {
manager = new AssetManager();
manager.load(wallFile, Model.class);
manager.load(floorFile, Model.class);
manager.load(stairsFile, Model.class);
manager.load(characterFile, Model.class);
}
public static void dispose() {
manager.clear();
manager.dispose();
}
public static void dispose(String fileName) {
manager.unload(fileName);
}
}
当我尝试使用该文件时,我写道:
model = AssetHandler.manager.get(AssetHandler.characterFile, Model.class);
model = AssetHandler.manager.get(AssetHandler.wallFile, Model.class);
一切正常,但角色文件不正常 其他文件有,但只有这个文件没有
请帮助我不明白为什么 没有弹出错误/异常
解决方案:
添加
manager.finishLoading();
在 load
方法的末尾。
如果你想异步执行,你应该在渲染循环中使用manager.update()
。
有关详细信息,请参阅 this。
尽量避免public字段和静态方法。(与问题无关)