同一接口在web和微信平台返回结果不同

接口:screenPointToRay(v2.x, v2.y, outRay),返回的outRay中的d值
web端输出:
{x: -0.49885187095225975, y: -0.4420883378989757, z: -0.7454560431984912}
微信开发工具端输出:
{x: -0.5189354227078515, y: -0.4624038424470172, z: -0.718949729500789}

微信偏差较大

translate.rar (6.1 KB) 可用该附件重现问题

可能是平台分辨率不同导致的,是有什么问题吗?

这样基于屏幕坐标映射出来的三维坐标偏差比较大,3d物体中的集中在屏幕左下位置
转换函数在下面
private _v2Convertv3(v2:Vec2,out:Vec3){
const outRay = new ray();
this.mainCamera.screenPointToRay(v2.x, v2.y, outRay);

    let x = outRay.o.x + (0 - outRay.o.y) / outRay.d.y * outRay.d.x
    let z = outRay.o.z + (0 - outRay.o.y) / outRay.d.y * outRay.d.z

    out.set(x, -10, z);
}

@JayceLai 如果还有其他实现思路,请指教

不同分辨率下,同一个屏幕坐标值对应的 3D 位置是不同的,但计算出的射线都是准确的。另外,也没发现会集中在屏幕左下位置啊