微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有一种方法可以在运行时通过使用模式中的选择器在A-Frame中设置“ gltf-model”或“ obj-model”?

如何解决有没有一种方法可以在运行时通过使用模式中的选择器在A-Frame中设置“ gltf-model”或“ obj-model”?

我正在制作一个A-Frame项目,其中必须在运行时根据用户输入为实体设置3D对象。有没有一种方法可以使用选择器类型进行设置?

示例:

AFRAME.registerComponent('model',{
schema:{
   ext: {type: 'string',default:'gltf'},scene:{type: 'selector'},material:{type: 'selector'},scale:{type: 'string',default: '1 1 1'}
},init: function (){
   var el = this.el;
   var data = this.data;
   if(data.ext == 'obj')
   {
     el.setAttribute('obj-model','obj',data.scene);
     el.setAttribute('obj-model','mtl',data.material);
   }
   else
     el.setAttribute('gltf-model',data.scene);
   el.setAttribute('scale',data.scale);
   console.log(this.el.toString() + ': Model component registered successfully!');
   }
});

通过使用元素ID设置它是行不通的,但是如果我在HTML文档中手动输入ID,它就可以正常工作。

解决方法

gltf-modelobj-model组件不使用DOM元素,而是URL或选择器。将选择器直接传递到模型中

AFRAME.registerComponent('model',{
 schema:{
  ext: {type: 'string',default:'gltf'},scene:{type: 'string' },material:{type: 'string'},scale:{type: 'string',default: '1 1 1'}
}

Corrected glitch

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。