過去兩週,我一直在更新舊版THREE.js發行版中的threejs_mousepick.html示例至當前版本。哦,是的,我是編程的新手。無法將舊代碼更新爲Three.js 88
我已經創建了一個小提琴,跳過別人會花一些時間來幫助我。 CANNON.js是一個很棒的API,很遺憾,看到現在的THREE.js中的例子太舊/無法使用。我知道這是很多工作,我很願意幫忙,但我需要一些幫助。所以,如果@schteppe你讀了這個,請聯繫:我願意花一些時間在這方面做一些工作。
過去兩週,我一直在更新舊版THREE.js發行版中的threejs_mousepick.html示例至當前版本。哦,是的,我是編程的新手。無法將舊代碼更新爲Three.js 88
我已經創建了一個小提琴,跳過別人會花一些時間來幫助我。 CANNON.js是一個很棒的API,很遺憾,看到現在的THREE.js中的例子太舊/無法使用。我知道這是很多工作,我很願意幫忙,但我需要一些幫助。所以,如果@schteppe你讀了這個,請聯繫:我願意花一些時間在這方面做一些工作。
答案與問題一樣廣泛。
使用THREE.Raycaster()
和THREE.Plane()
簡化了很多事情。它允許刪除諸如projectOntoPlane
,findNearestIntersectingObject
,getRayCasterFromScreenCoord
等功能,並且將setScreenPerpCenter
函數(其名稱很荒謬,但我將它保留原樣)縮短爲一行。
jsfiddle例如R87
gplane
爲THREE.Plane()
:
var gplane = new THREE.Plane(), gplaneNormal = new THREE.Vector3();
因爲它寫在descripting評論,我們創建了一個虛擬平面,我們將我們的關節點上。
function setScreenPerpCenter(point) {
gplane.setFromNormalAndCoplanarPoint(gplaneNormal.subVectors(camera.position, point).normalize(), point);
}
在這裏,我們設置了飛機從正常和共麪點,其中標準是相機的位置和點擊的立方體點之間相減的歸一化向量,問題是,點擊本身。閱讀關於該方法的信息here
男人,謝謝。我總是對這些功能感到困惑,無法確定如何使用它們。今晚我會花時間從你的代碼中學習。再次感謝你。 – Student
不客氣。將答案標記爲已接受,如果它解決了您的問題) – prisoner849
確實,現在完成了。 – Student
以下是鏈接:https://jsfiddle.net/f4j64L91/1/ – Student
檢查控制檯中的日誌,有幾條有用的消息。並閱讀['THREE.Raycaster()'](https://threejs.org/docs/index.html#api/core/Raycaster)。 – prisoner849
我做到了。我知道如何使用Three.js raycaster,我嘗試將函數替換成一些東西,但沒有成功......但是。這段代碼很複雜,嵌套。我會繼續試驗。 – Student