Creator 透视相机进行射线检测 结果不准确

  • Creator 版本: 2.4.0 / 2.4.2
  • 目标平台:Chrome / iOS / Android
  • 编辑器操作系统:Windows10
  • 重现概率:100%
  • DEMO:Map3DTest.zip (253.3 KB)
  • 实现效果:

地图为置于 ScrollView 中的固定图片,使用 3D 属性旋转 X 轴,相机选择透视模式,实现可拖动的近大远小的视觉效果;

其中白点为目标点“EventPoint”,鼠标点击可以使蓝点按跳到该处;
由于使用了透视相机,且没有物理方面的需求,所以点击检测是使用官方文档的 射线检测

  • 重现方式:

打开 Demo 的 MainScene 场景,运行预览;

测试1:如图选择设备为 Default,Rotate 关闭,Show FPS 打开,并刷新页面,点击任意白点;
结果1:可以正常检测到点击,并移动过去

.

测试2:按照测试1的设置,并关闭 Show FPS,并刷新页面,点击任意白点;
结果2:无法正常移动,观察控制台打印的检测列表,没有找到目标点实例“EventPoint”

.

测试3:反复切换设备,Rotate,Show FPS 这三个选项进行测试
结果3:所有设备的测试结果同结果2,检测列表都没有“EventPoint”

.

测试4:在上述测试结果检测不到“EventPoint”的情况下,拖动 ScrollView 将某个白点对齐到左下角,点击这个白点;
结果4:可以移动到这个白点

.

总结:除测试1设置的情况以外,射线检测都出现了偏移,偏移方向以左下角为原点,越往右上偏移越大

.

请问是我实现方式有问题,还是射线检测跟透视相机与旋转x轴有什么BUG呢?

论坛和百度都找了挺久,资料较少,在论坛倒是有一篇几年前说到射线检测不准确的帖子,但是没有后续

1赞

试了DEMO确实有这问题,,帮顶

Main CameraNear Clip 从 0 改为 1,就解决了

2赞

近平面越远,精度越高

学习了,收藏备注

有用~这个做备用

我也是无语了,到现在连个射线检测都弄不好。我一个场景里四个模型,只能检测到2个。唉,真没法玩。