最近在开发XR会议, 会上报一些姿态信息在多个端侧进行同步,由于在不同的端侧定位的位置是不一样的,如果你上传的是世界坐标,其实你在另个端侧根本就不能定位出来。

所以我们在上报姿态信息时,都是相对于某个物体的相对坐标,然后在端侧在进行转换成相对坐标。

设定roomObject为你要改变的相对物体,

世界坐标转换成相对于roomObject这个物体的相对坐标:

 Vector3 headLocalPosition = roomObject.transform.InverseTransformPoint(headWorldPosition);Quaternion headLocalRotation = Quaternion.Inverse(roomObject.transform.rotation) * headWorldRotation;

相对于roomObject这个物体的相对坐标转换成世界坐标:

 Vector3 headWorldPosition= roomObject.transform.TransformPoint(headLocalPosition);Quaternion headWorldRotation= roomObject.transform.rotation * headLocalRotation;

这样,我们的姿态信息在多个端侧进行流转时,我们统一转换成相对与某个物体的坐标,然后发送给其他端侧,其他端侧在根据相对物体转换成世界坐标。

参考文献:

What is the rotation equivalent of InverseTransformPoint? - Unity Answers

What's the math behind transform.TransformPoint()? - Unity Forum

Unity中世界坐标与相对于某个物体的相对坐标的转换相关推荐

  1. Python计算机视觉:在阈值化图像中使用center_of_mass()函数寻找每个物体的中心坐标

    Python计算机视觉:在阈值化图像中使用center_of_mass()函数寻找每个物体的中心坐标 <Python计算机视觉>第一章练习第七题: 使用形态学操作处理阈值化图像.在发现一些 ...

  2. Unity中基于Gpu Instance进行大量物体渲染的实现与分析(一)

    图  一个使用gpu instance绘制4000棵树的场景 在3D渲染中,尤其是现代3D游戏中,我希望能够绘制越来越多的场景物体,这对于设备(尤其是移动端)的性能是个极大的考验,对于新一代的渲染ap ...

  3. Unity中,实现鼠标点击物体,触发事件

    对于UI,很容易能够实现鼠标点击,从而触发事件,但是对于游戏中的物体,则需要多进行一些操作. 原理很简单,就是由鼠标点击处发射线,与游戏物体发生碰撞,碰撞到的物体,就是你点击到的物体.具体操作如下: ...

  4. Unity中添加组件/启用禁用游戏物体

    常用变量 transform组件 场景当中的任何游戏物体,必须有一个transform组件.用来定位位置,游戏物体存在场景当中不可能没有位置,所以每个游戏物体有且只有一个transform组件,且不能 ...

  5. unity中世界坐标和绝对坐标之间的转换

    public class TEST : MonoBehaviour {void Start () {Debug.Log(transform.position);}// Update is called ...

  6. 在Unity中实现体素化

    在Unity中实现体素化 博客链接:在Unity中实现体素化 体素化 类似与用网格存储二维平面,将三维空间划分成大量尺寸相同的小方块的过程就称之为体素化. 为什么要体素化 以下是个人理解 当场景中多边 ...

  7. 浅谈Unity中的rotation和Quaternion的乘法

    动手写游戏以后一个比较切身的体会,就是实际操作能检验很多语言的细节,也许平时看API文档,或者看一些教程的时候并没有深刻的体会,因为大多情况下你只知道了该怎么做,却不知道为什么要这么做,或者怎么想到这 ...

  8. 【Unity学习笔记】Unity中的欧拉角(Euler Angle)和万向节(Gimbal)

    声明:此篇文章是个人学习笔记,并非教程,所以内容可能不够严谨.可作参考,但不保证绝对正确.如果你发现我的文章有什么错误,非常欢迎指正,谢谢哦. 目录 1 奇怪的现象 1.2现象一 1.2 现象二 1. ...

  9. Unity中制作UI光晕效果(发光效果)

    Unity中,我们怎么制作UI物体发光的渐隐渐现的效果呢? 比如说我们有一张月亮光晕的精灵图片 我们可以给它添加一个CanvasGroup组件 我们可以发现,组件上的Alpha值可以控制图片的透明度, ...

  10. 在Unity中模仿游戏《江南百景图》中物体的出现效果

    在Unity中模仿游戏<江南百景图>中物体的出现效果 1. 效果 1.1. 游戏中的效果 1.2. 在Unity中模仿的效果 2. 思路 3. 实现 3.1. 图片 3.2. shader ...

最新文章

  1. 剑指offer(11-25题)详解
  2. Servlet 的生命周期
  3. P4149-[IOI2011]Race【点分治】
  4. 如何使用Windows OVERLAPPED优化你的应用
  5. kubernetes系列11—PV和PVC详解
  6. linux 测试网络端口通不通_能否使用一台矢量网络分析仪来控制多台 E5092A 以增加测试端口数?...
  7. 软件工程中逻辑覆盖的例题_干货丨一文读懂:飞算全自动软件工程平台如何提升软件开发效率...
  8. 素数and约数and反素数
  9. JavaScript判断受访域名,调用不同的js文件
  10. 关于“2021中国隧道与地下空间大会暨中国(城市)地下空间学会(筹)成立大会”的通知
  11. nfc和红外线的区别_比较NFC支付、蓝牙支付、红外线支付技术的优缺点
  12. linux 虚拟ip 作用,linux-高可用之虚拟ip地址(VIP)
  13. java 调用打印机
  14. SaaS-HRM(3)企业部门管理前后台
  15. Stata:VAR-中的脉冲响应分析-(IRF)
  16. Raptor-水仙花数
  17. 电脑小知识:Windows 10 系统自带截图方法全解,赶紧收藏一下!
  18. mysql 创建索引语句
  19. mysql表怎么移动列_excel移动整列的方法图解步骤
  20. 学习笔记(01):8小时学会HTML网页开发-了解HTML

热门文章

  1. Tensorflow 2.0 医学图像分割(肝脏CT图像分割)
  2. 假想参考解码器 vbv HRD
  3. drop_caches 释放哪些
  4. 新电视显示服务器失败,电视网络连接失败原因是什么
  5. egret引擎生命周期相关
  6. 详解各种光学仪器成像原理
  7. 【echarts】柱状图上方显示数值
  8. 《数学之美》读书笔记
  9. 对Proteus与Keil联调过程中遇到的怪异现象解决方法
  10. 3种内网穿透方式连接家用宽带服务器