我正在尝试加载包含.zip
和所有必需纹理的已下载.g3db
个文件。看起来.g3db
文件正在使用loadModel()
方法正常加载。但正如我所看到的,名为TextureProvider
的{{1}}方法只能读取load()
个文件。
如何强制Internal
仅使用ModelLoader
路径?
代码
加载模型
Absolute
FileTextureProvider load()方法
UBJsonReader jsonReader = new UBJsonReader();
G3dModelLoader modelLoader = new G3dModelLoader(jsonReader);
model = modelLoader.loadModel(Gdx.files.absolute(modelPath));
加载纹理时出错
@Override
public Texture load (String fileName) {
Texture result = new Texture(Gdx.files.internal(fileName), useMipMaps);
result.setFilter(minFilter, magFilter);
result.setWrap(uWrap, vWrap);
return result;
}
答案 0 :(得分:0)
它说在libgdx文档中,对于Android,您需要将资产作为资源或资产文件夹。因此,如果您必须将资产放在android的assets文件夹中,那么强制加载器使用文件路径是没有意义的。
答案 1 :(得分:0)
事实证明,您可以使用AssetManager
加载存储为内部数据的文件。成功的关键是使用AbsoluteFileHandleResolver()
。
这是我从应用程序中自定义创建的文件夹中加载Model
的方法。
private Model loadModelFromFile(File file) {
AssetManager assets = new AssetManager(new AbsoluteFileHandleResolver());
assets.load(file.getPath(), Model.class);
assets.finishLoading();
return assets.get(file.getPath(), Model.class);
}