gpt4 book ai didi

javascript - 如何在 Three.js 中与场景中的对象进行交互?

转载 作者:行者123 更新时间:2023-11-27 23:58:00 25 4
gpt4 key购买 nike

例如,如果我用鼠标指向场景中的一个圆圈,就能够检测到它。我到处都找过了,似乎什么也没找到。 Three.js 文档也没有真正讨论它。

最佳答案

首先,您应该添加事件监听器,例如“mousemove”、“mousedown”。

document.addEventListener('mousedown', onDocumentMouseDown, false);
document.addEventListener('mousemove', onDocumentMouseMove, false);

因此,您希望在将鼠标移到圆圈上时发生事件。因此,让我们发出一个警报,当鼠标在该圆圈上移动时,您将收到警报。

function onDocumentMouseDown(event) {

event.preventDefault();

mouseYOnMouseDown = event.clientY - windowHalfY;
mouseXOnMouseDown = event.clientX - windowHalfX;

var vector = new THREE.Vector3((event.clientX / window.innerWidth) * 2 - 1, -(event.clientY / window.innerHeight) * 2 + 1, 0.5);
vector = vector.unproject(camera);

var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
var intersects = raycaster.intersectObjects(circleObj, true); // Circle element which you want to identify

if (intersects.length > 0) {
alert("Mouse on Circle");
}

}

在 Three.js 中,我们使用 raycaster 来指向任何对象。浏览 Three.js 文档中的 raycaster。

关于javascript - 如何在 Three.js 中与场景中的对象进行交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32087007/

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