过去两周,我一直在更新旧版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