<a-assets>
<a-mixin id="ring" geometry="primitive: ring; radiusOuter: 0.20;
radiusInner: 0.15;"
material="color: cyan; shader: flat"
cursor=" fuse: true"></a-mixin>
<a-asset-item id="mancloth" src="../models/man.obj"></a-asset-item>
<a-asset-item id="manclothmtl" src="../models/man.mtl"></a-asset-item>
</a-assets>
<a-entity camera look-controls wasd-controls><a-entity mixin="ring" position="0 0 -3">
<a-animation begin="cursor-click" easing="ease-in" attribute="scale"
fill="backwards" from="0.3 0.3 0.3" to="1 1 1"></a-animation>
<a-animation begin="cursor-fusing" easing="ease-in" attribute="scale"
fill="forwards" from="1 1 1" to="0.3 0.3 0.3"></a-animation>
</a-entity>
</a-entity>
<a-obj-model scale="1 1 1" src="#mancloth" mtl="#manclothmtl"></a-obj-model>
我使用相机与obj进行交互,但aframe.js在第57766行显示错误。如何在不更改aframe.js的情况下解决此问题。
var intersectedEl = intersection.object.el;
intersectedEl.emit('raycaster-intersected', {el: el,intersection:intersection});
intersection.object
是THREE.Mesh,所以intersection.object.el未定义!
答案 0 :(得分:1)
通过将A-Frame实体绑定到模型的每个子项,已在https://github.com/aframevr/aframe/pull/1497修复此问题。
您可以等待A-Frame 0.3.0或使用最新的A-Frame主机。现在,光标使用raycaster来查看相交的对象。使用OBJ / COLLADA模型,它可以创建一个对象树。但是,A-Frame仅将顶级对象视为实体。因此,当raycaster返回对象时,它没有关联实体来发送事件。
现在它应该起作用:
<a-camera><a-cursor></a-cursor></a-camera>
<a-obj-model></a-obj-model>