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




