javascript - JSONLoader 光线转换器和碰撞网格 - three.js

标签 javascript three.js collision intersection raycasting

我正在使用 raycaster 查看我是否用鼠标(或触摸)击中了一个网格物体很薄,我可以增加任何可以与射线相交的大小。与游戏对象一样,(使用 three.js)我可以添加自己的碰撞网格,它显然不会渲染,但会触发射线吗?

enter image description here

因此,当我的光线击中与原始网格关联的(不可见的)粉红色圆柱体时,它会触发相交。

我不能简单地制作另一个与原始网格分组的网格并使其可见 = false;或不透明度 = 0;那行不通。我正在寻找“内置”的东西(如果存在)

非常感谢

最佳答案

您想在场景中添加一个响应光线转换但不渲染的碰撞网格。

为此,将您的碰撞网格添加为您的网格的子项,并将碰撞网格的 Material 的可见性设置为 false。

collisionMeshMaterial = new THREE.MeshBasicMaterial( {
    visible: false
} );

碰撞网格不会渲染,但会响应光线转换。

three.js r.74

关于javascript - JSONLoader 光线转换器和碰撞网格 - three.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35820967/

相关文章:

C++游戏导弹碰撞检测

javascript - Redux reducer 正在被我的 React 组件中的 setState 或 .map() 覆盖

javascript - 如何模拟 ajax 响应

three.js - ThreeJS - THREE.BufferGeometry.computeBoundingSphere() 给出错误 : NaN Position Values

Java Rect.intersects() 有时不工作

Java 3D LWJGL 碰撞

javascript - Angular 2 : how to refer to a class variable inside a function called by Observable map

javascript - 向下滚动时缩小导航栏,跨浏览器兼容性问题

javascript - AFrame:重新调整元素的父级,保持其世界位置、旋转

three.js - 在 Babylon.js 中绘制自定义形状