【Unity】对接现场硬件传回的位置数据,转化为Unity内部坐标

对接现场硬件传回的位置数据,转化为Unity内部坐标

1、前言

近期和Web端结合开发一个人员定位信息的项目,Unity的WebGL包嵌入到Unity前端,Web端发送现场的人员定位坐标给我,我需要再WebGL中对应的位置显示模型,但是Unity中的坐标和实际的人员定位坐标是不一样的,所以需要一个转换,代码如下:

2、代码

假设服务器传回的四个点分别是 (x1, y1, z1), (x2, y2, z2), (x3, y3, z3), (x4, y4, z4),而在Unity中相应的点分别是 (u1, v1, w1), (u2, v2, w2), (u3, v3, w3), (u4, v4, w4)。

  • 首先,计算服务器坐标到Unity坐标的缩放比例和偏移量:
//缩放比
Vector3 serverScale = new Vector3((u2 - u1) / (x2 - x1), (v2 - v1) / (y2 - y1), (w2 - w1) / (z2 - z1));

//偏移量
Vector3 serverOffset = new Vector3(u1 - x1 * serverScale.x, v1 - y1 * serverScale.y, w1 - z1 * serverScale.z);

  • 然后,可以使用计算得到的缩放比例和偏移量来将服务器坐标转换为Unity坐标:
Vector3 ConvertServerToUnityCoordinates(Vector3 serverCoords)
{
    Vector3 unityCoords = new Vector3(serverCoords.x * serverScale.x + serverOffset.x,
                                      serverCoords.y * serverScale.y + serverOffset.y,
                                      serverCoords.z * serverScale.z + serverOffset.z);
    return unityCoords;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值