Lor*_*ick 2 javascript three.js
我在 PlaneGeometry 上使用 EdgesGeometry,它似乎在鼠标事件中创建了一个更大的命中框。然而,这在使用 CircleGeometry 时并不明显。我有以下几点:
createPanel = function(width, height, widthSegments) {
var geometry = new THREE.PlaneBufferGeometry(width, height, widthSegments);
var edges = new THREE.EdgesGeometry( geometry );
var panel = new THREE.LineSegments( edges, new THREE.LineBasicMaterial({
color: 0xffffff }));
return panel;
}
var tile = createPanel(1.45, .6, 1);
Run Code Online (Sandbox Code Playgroud)
现在我正在使用一个名为 RayInput 的库,它为我完成所有的光线投射,但想象一下我只是使用一个普通的 raycaster 来处理鼠标事件。没有edges和只使用平面,碰撞的边界是准确的。
添加EdgesGeometry后,垂直hitbox似乎显着增加,因此,当我什至没有点击对象时,就会检测到对象被点击。水平碰撞箱似乎仅略有增加。我以前从未使用过 EdgesGeometry 所以有人知道发生了什么吗?
提前致谢。
如果您针对THREE.Line或进行光线投射THREE.LineSegments,则应将Line.threshold参数设置为适合场景比例的值:
raycaster.params.Line.threshold = 0.1; // default is 1
Run Code Online (Sandbox Code Playgroud)
三.js r.114
| 归档时间: |
|
| 查看次数: |
366 次 |
| 最近记录: |