舉例來說,如果我用鼠標點在現場轉了一圈,能夠檢測到。我到處尋找,似乎無法找到任何東西。 Three.js文檔也沒有真正談論它。如何在three.js中與場景中的對象進行交互?
回答
首先你應該添加事件偵聽器,如「鼠標移動」,「鼠標按下」。
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。
這是一個非常好的答案。非常感謝! – Aldmeri
每次都不要實例化一個新的raycaster。創建一個並重用它。參見[此帖](http://stackoverflow.com/questions/26652888/three-js-orthographic-camera-object-picking/26656345#26656345)新模式來使用。 – WestLangley
@WestLangley謝謝.. :) – disciple
- 1. Three.js:在場景中間顯示對象
- 2. Three.js - 訪問場景中的子對象
- 3. 需要three.js場景中3D對象的交互式鼠標控制
- 4. Three.js:如何計算在場景中添加的對象
- 5. 如何從three.js中刪除場景中的所有Mesh對象?
- 6. 如何與列表中的一行中的對象進行交互
- 7. 對象是如何在OOP中進行交互的?
- 8. 如何在Three.js中拖動場景
- 9. SKSpritenode與場景物理體進行交互
- 10. 對象在Java中如何使用方法與對方進行交互?
- 11. 域對象和服務如何在DDD中進行交互?
- 12. Three.js raycaster交點空對象不是場景的一部分
- 13. 如何與使用ajax插入的對象進行交互?
- 14. 與Ruby中的類對象進行交互
- 15. 與Python 3中的3D對象進行交互?
- 16. 與WCF服務中的主機對象進行交互
- 17. 如何使用硒與對象標籤進行交互
- 18. 如何通過文件上傳與ActionDispath對象進行交互?
- 19. 如何使用C與COM對象進行交互?
- 20. JavaScript Image對象如何與瀏覽器緩存進行交互?
- 21. 如何正確地與對象內的父函數/對象進行交互
- 22. 在three.js場景中動態獲取對象位置
- 23. 如何在three.js中製作交互式視頻進度條?
- 24. 以交互方式將形狀添加到Three.js場景
- 25. 與execfile中的對象進行交互/ subprocess.call在Python文件中帶參數
- 26. 在顯示它之前與我的JSON對象進行交互
- 27. 線程交互場景
- 28. three.js第一人稱控制使對象從場景中消失
- 29. 如何使用Three.js基於按鈕點擊替換場景中的對象?
- 30. del如何與對象屬性交互?
是「撿」你要找的字?像http://threejs.org/examples/webgl_interactive_cubes_gpu.html –
或者http://alexan0308.github.io/threejs/examples/controls_events_piano.html –
是的,這是完全一樣的。 – Aldmeri