收藏
回答

小游戏中用threejs加载gltf模型问题

如果将模型放在小游戏项目下一起打包,在真机上可以正常加载。

但是,如果把模型文件放在远端服务器,下载回来放入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 );

}

);

}


回答关注问题邀请回答
收藏

4 个回答

  • 唯美的根号三
    唯美的根号三
    2019-09-29

    gltf模型加载时没问题,但是,当gltf模型带有贴图时候,gltfloader里面加载图片有问题!

    2019-09-29
    有用 2
    回复
  • candy_yuan
    candy_yuan
    2019-09-30

    glb文件加载的时候 真机不显示 的问题  怎么解决

    2019-09-30
    有用
    回复
  • 肖辉
    肖辉
    2018-12-11

    楼主试过直接从服务器加载gltf吗, GLTFLoader--onLoad回调不执行,看console-network,  资源已请求到了,onLoad回调就是不执行, 有知道的么  @殷小雨  @郑家乐

    2018-12-11
    有用
    回复
  • 郑家乐
    郑家乐
    2018-11-16

    你可以试试使用 FileSystemManager readFile 接口获取文件内容

    2018-11-16
    有用
    回复 4
    • 殷小雨
      殷小雨
      2018-11-16

      我修改了适配器里XMLHttpRequest的代码。将wxfile开头的地址改用readFile读取。



      2018-11-16
      回复
    • 豪
      2018-11-29回复殷小雨

      请问你的问题解决了吗?可以请教下吗?

      2018-11-29
      回复
    • 殷小雨
      殷小雨
      2018-11-30回复

      我不知道你用的哪个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

      2018-11-30
      回复
    • 龙
      2019-05-19

      关于这个,有的模型可以有的不行,貌似如果模型里面有texture就不行,loader里面用到的Promise 以及其他一下Blob之类的api会出错

      2019-05-19
      1
      回复
登录 后发表内容