[英]Three.js - Object follows mouse position
我在Three.js
創建一個球體,它必須在它移動時跟隨鼠標,如本例所示 。 處理鼠標移動的功能如下:
function onMouseMove(event) {
// Update the mouse variable
event.preventDefault();
mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
mouse.y = - (event.clientY / window.innerHeight) * 2 + 1;
// Make the sphere follow the mouse
mouseMesh.position.set(event.clientX, event.clientY, 0);
};
我在其中附加了一個包含完整代碼的JSFiddle ,在那里你可以看到根據DOM, mouseMesh
是未定義的。 你知道我做錯了什么嗎?
提前感謝您的回復!
你應該使用THREE.Raycaster。 設置intersectObjects列表時,您將能夠獲得與光線相交的對象數組。 因此,您可以從返回列表中的“已點擊”對象中獲取位置
基本上,您需要從3D世界空間和2D屏幕空間投影。 渲染器使用projectVector將3D點轉換為2D屏幕。 unprojectVector基本上用於將2D投影反向投影到3D世界中。 對於這兩種方法,您都可以通過相機查看場景。 因此,在此代碼中,您將在2D空間中創建規范化矢量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.