[LayaAir3]在3d相机设置视图矩形后 检测3d场景下的点击计算问题

camera.viewportPointToRay 的转换应该统一用viewport的值 见图一
getSprite3DUnderPoint  里判断点击区域得考虑设置视图矩形后viewport.width 变小的问题 见图二
QQ图片20240613185046.png QQ图片20240613190453.png
已邀请:

Laya_Fred

赞同来自:

您好,这个viewportPointToRay的接口处理或者是否在2D转3D射线检测的时候出现问题了呢,接口处理应该是如下考虑的:
1、在Input3D内的getSprite3DUnderPoint方法中,根据2D点击坐标与相机视口的宽高来判断是否点击在相机视口内容,当viewport.width变小时,也是需要先检测当前2D坐标已经在相机视口区域内再进行2D转换3D坐标的处理。
2、在camera.viewportPointToRay方法中,是将stage的宽高作为视口宽高,使得视口近裁面是从stage的宽高进行坐标转换的。
3、目前没收到反馈在viewpointToRay方法转换错误的情况,目前也在getSprite3DUnderPoint方法中做了画布clientScaleX、clienScaleY的缩放处理。如果存在问题还是得需要一个简单的复现demo来排查问题。

要回复问题请先

商务合作
商务合作