1

我一直在努力让这个例子对我有用。我快到了。我的问题是我没有使用全屏画布。我正在使用一个较小的 div,它可能会根据分辨率不同放置。

我所做的工作是在这个 div 中获取鼠标点击的坐标,并且点击对象也可以正常工作。但是一切都有点偏移,可点击区域比对象本身大。

所以我的问题是如何使这个更准确。

此代码http://jsfiddle.net/phacer/FHD8W/1/在我的浏览器中有效,但在 JSFiddle 中无效。那么在这种情况下,我如何点击我的对象?

我认为第 180 行是错误的。

var vector = new THREE.Vector3((x / WIDTH) / 1 - 1, -(y / HEIGHT) / 1 + 1, 0.5);
4

1 回答 1

1

你很亲密。最大的问题是使用旧的 r54 库。从 r58 开始,Raycasting 变得更好了。所以看看这个新的小提琴http://jsfiddle.net/FHD8W/3/我已经删除了 r54 链接并向 github.io 添加了一个外部资源。

此外,您是正确的,第 180 行需要稍作调整才能看起来像这样:

var vector = new THREE.Vector3((x / WIDTH) * 2 - 1, -(y / HEIGHT) * 2 + 1, 0.5);

应该这样做

于 2013-10-17T12:17:05.813 回答