2016-07-22 85 views
0

即時建立一個小型3D配置器。我偶然發現了這個問題,如果我使用Raycaster觸發事件,那麼在使用.intersectObject()時必須啓用遞歸。但是如果你可以這樣調用,我需要改變'父'的位置。是否有可能引用加載obj加載器而不是後代的對象?Three.js OBJ裝載機Raycaster獲得父

這裏是我的鼠標按下功能:

function onDocumentMouseDown(event){ 
event.preventDefault(); 

raycaster.setFromCamera(mouse, camera); 

var intersects = raycaster.intersectObjects(ObjectArr, true); 

if (intersects.length > 0) { 

    SELECTED = intersects[ 0 ].object; 

    if (raycaster.ray.intersectPlane(plane, intersection)) { 

     console.log("Plane Intersection"); 
     SELECTED.doSomething... 

    } 

} 

} 

這樣選擇是不是ObjectArr的值。我需要從另一個函數中引用位置。是否有可能引用父對象?

+0

你有沒有試過SELECTED.parent? http://threejs.org/docs/#Reference/Core/Object3D –

+0

如果Derte的回答沒有幫助,那麼可能不要在intersectObjects中使用'true',因爲這將包含任何對象子代 – Rush2112

回答

0

感謝Derte Trdelnik。

解決方案是使用SELECTED.parent。