gpt4 book ai didi

javascript - Aframe 射线转换器 交叉点

转载 作者:行者123 更新时间:2023-12-01 01:29:40 25 4
gpt4 key购买 nike

切换到 Aframe 的主版本后,光线转换器相交事件似乎变为空,尽管我保留了完全相同的代码:

<script src="https://cdn.jsdelivr.net/gh/aframevr/aframe@efcc8a0a919811fe5bd4ab6fd60bfbb8e85a98a1/dist/aframe-master.min.js"></script>

使用注册组件:

AFRAME.registerComponent('collider-check', {
dependencies: ['raycaster'],
init: function () {
this.el.addEventListener('raycaster-intersected', function (evt) {
console.log(evt.detail.intersection);//this returns null
var intersection=evt.detail.intersection.point;
startTimer(intersection.x,intersection.y,intersection.z);
});
}
});

以及我放置碰撞检查的相机

<a-entity id="cameraParent"  position="0 0 0" >
<a-entity id="cam" camera="zoom:1;" look-controls collider-check position="0 0 0" >
<a-entity cursor=" rayOrigin: mouse"
geometry="primitive: ring; radiusInner: 0; radiusOuter: 0"
material="color: black; shader: flat"></a-entity>

<a-entity raycaster="showLine:true; far: 1000" line="color:orange; opacity:1" ></a-entity>
</a-entity>
</a-entity>

我想要捕捉交叉点的天空

 <a-sky  class="collidable" id="image-360" radius="200"  src="#{{$tour_images[0][0]->name}}" data-image-id="{{$tour_images[0][0]->id}}"></a-sky>

最佳答案

您现在必须手动抓取交叉点数据,这是为了防止事件详细信息中出现内存垃圾。

事件详细信息为获取交集的方法提供了方便的引用。

evt.detail.getIntersection(this.el);

此外,raycaster-intersected 事件也不再被垃圾邮件发送。它仅在交叉点开始时调用一次。如果您需要发送垃圾邮件,请监听该事件,存储变量,然后使用tick

关于javascript - Aframe 射线转换器 交叉点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53411442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com