网格检测仅在我打开开发人员工具后才能工作

时间:2014-05-17 08:52:56

标签: javascript three.js collision-detection mesh developer-tools

我加载一些obj。和.mtl文件,我在场景中创建并添加一些对象。我将它们放在一个数组中,这样我就可以检测到它们成功点击的时间。 ((intersectObjects(objs,true))

虽然,当我创建简单的圆形网格并将它们放入数组中以便我可以检测到它们时,检测并不完全有效。非常困难的intersectObjects()检测我对圆圈的点击(平均需要4-5次点击)。

奇怪的是,当我按下F12并打开开发者工具(然后我关闭或不关闭,无关紧要)时,一切都运行良好,圆圈很容易被检测到。很奇怪。我认为intersectObjects()有问题。在我看来,它不能很好地处理网格。

一段代码(因为项目很大而且很复杂): https://dl.dropboxusercontent.com/u/100222836/code.js

注意:我想几天前控制台发出一个"错误" message与IntersectObjects函数中Three.js文件的.getDescendants函数相关。

编辑

另一件奇怪的事情是,在我打开开发人员工具之前,我点击一个圆圈旁边(圆圈左边的空白区域),它会检测到点击,就像我点击了圆圈一样本身(空白空间右侧的圆圈会像点击预期的那样改变颜色)! (见我点击的图片: https://www.dropbox.com/s/0gqb6iovon8c665/Screenshot%202014-05-15%2015.51.18.png)。

打开工具后,它没有检测到圆圈左侧空白区域的点击。相反,我点击一个圆圈,它就会检测到点击,就好像我在右边的圆圈中一样*(我点击的那个圆圈右边的圆圈,按照预期的方式改变颜色):https://www.dropbox.com/s/ntiumegrg7wkgie/Screenshot%202014-05-15%2015.51 < /强> .18%20-%20Copy.png

所以在场景中加载的网格或者intersect()的工作方式有问题。**

*我修正了,这只是一个数学问题。所以现在当我打开D.T.它工作正常。如果我不打开D.T。

,仍然是问题

**

**

0 个答案:

没有答案