我試圖加載下載的.zip
包含.g3db
和所有必需紋理的文件。它看起來像.g3db
文件加載罰款與loadModel()
方法。但正如我所見,TextureProvider
方法名爲load()
只能讀取Internal
文件。FileTextureProvider僅從「內部」加載文件
任何想法如何強制ModelLoader
只使用Absolute
路徑?
代碼加載時
加載模型
UBJsonReader jsonReader = new UBJsonReader();
G3dModelLoader modelLoader = new G3dModelLoader(jsonReader);
model = modelLoader.loadModel(Gdx.files.absolute(modelPath));
FileTextureProvider load()方法
@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;
}
錯誤紋理
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: /data/user/0/com.app.sample/files/model/flower/flowerTextures.png (Internal)
at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:77)
at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:222)
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:144)
at com.badlogic.gdx.graphics.TextureData$Factory.loadFromFile(TextureData.java:98)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:100)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:96)
at com.badlogic.gdx.graphics.g3d.utils.TextureProvider$FileTextureProvider.load(TextureProvider.java:52)
at com.badlogic.gdx.graphics.g3d.Model.convertMaterial(Model.java:292)
at com.badlogic.gdx.graphics.g3d.Model.loadMaterials(Model.java:268)
at com.badlogic.gdx.graphics.g3d.Model.load(Model.java:107)
at com.badlogic.gdx.graphics.g3d.Model.<init>(Model.java:102)
at com.badlogic.gdx.assets.loaders.ModelLoader.loadModel(ModelLoader.java:54)
at com.badlogic.gdx.assets.loaders.ModelLoader.loadModel(ModelLoader.java:69)
at com.app.sample.sdk.libgdx.ar.Display$2.call(Display.java:71)
at com.app.sample.libgdx.ar.Display$2.call(Display.java:62)
at rx.internal.operators.OnSubscribeFromCallable.call(OnSubscribeFromCallable.java:48)
at rx.internal.operators.OnSubscribeFromCallable.call(OnSubscribeFromCallable.java:33)
at rx.Observable.unsafeSubscribe(Observable.java:8460)
at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
at rx.internal.schedulers.CachedThreadScheduler$EventLoopWorker$1.call(CachedThreadScheduler.java:222)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.io.FileNotFoundException
什麼平臺? Android有很多文件限制。您需要非常仔細地閱讀LibGDX文檔。 – Tenfour04
在Android上可以。 – JakubW