[英]A-frame .obj model geometry and events
I'm trying to set mouse events on obj. 我正在尝试在obj上设置鼠标事件。 model in A-frame. A帧中的模型。 I've noticed that my object won't trigger any mouse events (mouseenter, mouseleave, click...). 我注意到我的对象不会触发任何鼠标事件(mouseenter,mouseleave,click ...)。 So I've added geometry="primitive: box; height: 50; width: 50; depth: 50"
to the object and the events started to work... But I want the object to trigger events not the box inside. 因此,我向对象添加了geometry="primitive: box; height: 50; width: 50; depth: 50"
,事件开始起作用...但是我希望对象触发事件而不是触发内部的事件。
Questions: 问题:
Is there a way to make a complex geometry that resembles the object? 有没有办法制作类似于对象的复杂几何图形? Am I doing something wrong and my object should trigger mouse events without geometry property? 我做错了什么,我的对象应该触发没有几何属性的鼠标事件?
Code: 码:
<a-assets>
<a-asset-item id="heart-obj" src="Heart.obj"></a-asset-item>
<a-asset-item id="heart-mtl" src="Heart.mtl"></a-asset-item>
</a-assets>
<a-entity id="heart"
obj-model="obj: #heart-obj; mtl: #heart-mtl"
geometry="primitive: box; height: 50; width: 50; depth: 50"
scale="0.1 0.1 0.1"
position="0 1.6 -12"
event-set__enter="_event: mouseenter; _target: #heartText; visible: true"
event-set__leave="_event: mouseleave; _target: #heartText; visible: false">
<a-text id="heartText"
value="This is a heart"
align="center"
color="#FFF"
visible="false"
scale="10 10 10"
position="-15 24 27"
geometry="primitive: plane; width: 2"
material="color: #333">
</a-text>
</a-entity>
<a-camera>
<a-cursor id="cursor"></a-cursor>
</a-camera>
Imports 进口货
<script src="https://aframe.io/releases/0.7.0/aframe.min.js"></script>
<script src="https://unpkg.com/aframe-event-set-component@3.0.3/dist/aframe-event-set-component.min.js"></script>
Thanks for the tip @DonMcCurdy. 感谢您的提示@DonMcCurdy。
So I've added ( from ): 因此,我添加了( 来自 ):
AFRAME.registerComponent('raycaster-refresh', {
init: function () {
var sceneEl = this.el.sceneEl;
sceneEl.addEventListener('object3dset', function () {
var raycasterEl = sceneEl.querySelector('[raycaster]');
raycasterEl.components.raycaster.refreshObjects();
});
}
});
<a-scene raycaster-refresh>
...
</a-scene>
Mouse events work even without the box inside the 3D object now. 即使现在没有3D对象内的框,鼠标事件也可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.