如果将模型放在小游戏项目下一起打包,在真机上可以正常加载。
但是,如果把模型文件放在远端服务器,下载回来放入wx.env.USER_DATA_PATH目录后就无法加载。
var loader = new THREE.GLTFLoader();
// Load a glTF resource
loader.load(
// resource URL
wx.env.USER_DATA_PATH + '/res/penguin.gltf',
// called when the resource is loaded
function ( gltf ) {
let gltfScene : THREE.Scene = gltf.scene;
let gltfMesh = gltfScene.children[0].children[1] as THREE.Mesh;
PGeometry = gltfMesh;
console.log(gltf);
Anim = gltf.animations[0] as THREE.AnimationClip;
RootBone = gltfScene.children[0] as THREE.Bone;
RootBone.scale.set(3, 3, 3);
RootBone.position.set(0,0,-5);
scene.add(RootBone);
mixer = new THREE.AnimationMixer(RootBone);
let action = mixer.clipAction(Anim);
action.play();
},
// called while loading is progressing
function ( xhr ) {
console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
},
// called when loading has errors
function ( error ) {
console.log( 'An error happened: ' + error );
}
);
}
gltf模型加载时没问题,但是,当gltf模型带有贴图时候,gltfloader里面加载图片有问题!
glb文件加载的时候 真机不显示 的问题 怎么解决
楼主试过直接从服务器加载gltf吗, GLTFLoader--onLoad回调不执行,看console-network, 资源已请求到了,onLoad回调就是不执行, 有知道的么 @殷小雨 @郑家乐
你可以试试使用 FileSystemManager readFile 接口获取文件内容
我修改了适配器里XMLHttpRequest的代码。将wxfile开头的地址改用readFile读取。
请问你的问题解决了吗?可以请教下吗?
我不知道你用的哪个wx adapter,我用的小胖的。
我修改了XMLHttpRequest.js里的代码
function _isRelativePath(url) {
return !(/^(http|https|ftp):\/\/.*/i.test(url));
//return !(/^(http|https|ftp|wxfile):\/\/.*/i.test(url));
}
让wxfile读取改用readFile,原本是用的wx.request
关于这个,有的模型可以有的不行,貌似如果模型里面有texture就不行,loader里面用到的Promise 以及其他一下Blob之类的api会出错