同样的点击事件,为什么在 模拟器 里返回的是一个值。在 debug时返回的是另一个值?

是代码中的同一段。在canvas下面的 touchend事件里。 返回的 location,y值差了90多。

有人遇到过吗?

没听说过,屏幕旋转过?

最后发现是,debug时,屏幕底下没黑边。 模拟器里有黑边。差别就在那个黑边上。

最后是提前计算 Canvas 和真实屏幕高度之间的差,点击后去掉这个差值。。
collider.world.points 里的值,似乎是到Canvas的距离,而非屏幕底部距离

你说的 debug 没黑边是所有原生平台都没有吧?另外你说的高度差应该可以用 cc.visibleRect.top 获取到。

Debug没黑边,是因为恰好选了个合适的屏幕尺寸。
高度差 已经是搞定了。

现在主要问题是,那个 collider.world.points 的值,并不是到屏幕边缘的,而是到 canvas 边缘的。 这个你们可以看看吗

我不太明白这跟屏幕有什么关系?我们的坐标系不应该考虑到屏幕。毕竟最终渲染在屏幕什么位置,得看是哪个摄像机渲染的。

我在 Canvas 的node上加的touchend事件,给到的点击位置,就是相对屏幕边缘的。 但是 Canvas里的一个 collider里的world.points的值,却是到 Canvas边缘的。