threejs 加载模型遇到的问题

今天在处理threejs加载的Obj模型的时候,想让按照模型的不同类型一次加载到页面中,

根据模型中的children中的name来判断模型的类型

//consle.log(this.modelObject.children.length) //86
this.modelObject.traverse(child => {
      console.log("in")
      scene.add(child);
  })

以上代码 如果 不加scene.add(child)  控制台上打印出来的“in”的数量是正确的,一旦加上 scene.add(child) 这句话 控制台上打印出来的"in"数量就不正确

经过了解发现 scene.add() 方法 不会复制一份child到scene中,原有的child是属于this.modelObject的 如果直接将child添加到场景中 就会造成层级关系(父子关系)混乱

因此需要单独创建一份数据出来 添加到场景中 这样就能将模型中的数据依次加载到场景中

this.modelObject.traverse(child => {
      console.log("in")
      scene.add(child.clone());
  })

或者 
scene.add(...this.modelObject.children)

\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值