[LayaAir3]在3d相机设置视图矩形后 检测3d场景下的点击计算问题
camera.viewportPointToRay 的转换应该统一用viewport的值 见图一
getSprite3DUnderPoint 里判断点击区域得考虑设置视图矩形后viewport.width 变小的问题 见图二
getSprite3DUnderPoint 里判断点击区域得考虑设置视图矩形后viewport.width 变小的问题 见图二
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
Laya_Fred
赞同来自:
1、在Input3D内的getSprite3DUnderPoint方法中,根据2D点击坐标与相机视口的宽高来判断是否点击在相机视口内容,当viewport.width变小时,也是需要先检测当前2D坐标已经在相机视口区域内再进行2D转换3D坐标的处理。
2、在camera.viewportPointToRay方法中,是将stage的宽高作为视口宽高,使得视口近裁面是从stage的宽高进行坐标转换的。
3、目前没收到反馈在viewpointToRay方法转换错误的情况,目前也在getSprite3DUnderPoint方法中做了画布clientScaleX、clienScaleY的缩放处理。如果存在问题还是得需要一个简单的复现demo来排查问题。