unity常用的坐标系转换
2024-09-05 04:50:52
当调用别人的接口时,经常会有获取位置或向量的接口。遇到这些数据时,先要弄清楚现在获取的数据在哪个坐标系下的。
是否需要进行坐标系变换,一般提供的位置和向量都是在世界坐标系的,此时需要注意:
①对方的坐标系是左手坐标系还是右手坐标系
因为Unity是左手坐标系,如果接口提供的数据是基于右手坐标系的话,我们需要把z值取反后,看起来的效果才是正常的。
②如果我们通过接口拿到的数据,我们想把它跟随场景中“Camera Rig”物体移动和旋转
为了实现“Camera Rig”物体移动我们拿到的位置也跟着移动,“Camera Rig”物体旋转时我们拿到的位置和向量也跟着旋转。我们
需要用“Camera Rig”物体的移动和旋转创建一个变换矩阵,把拿到的数据乘这个矩阵即可实现。
Vector3 point = GetPoint();
Vector3 dir = GetDir(); //创建矩阵
Transform target = CameraRig.transform;
Matrix4x4 mat = Matrix4x4.TRS(target.position, target.rotation, Vector3.one); //变换位置点
point = mat.MultiplyPoint(point); //变换向量
dir = mat.MultiplyVector(dir);
最新文章
- DB2常用sql命令
- Hibernate类中集合的映射
- 在线PDF编辑网站http://www.pdfescape.com
- 11个强大的Visual Studio调试小技巧(转)
- PHP MySQL 创建数据库
- Slack 开源替代品 Rocket.Chat(聊天,文件上传等等)
- sql server 2008 (3)
- git-daemon的快捷搭建
- 两张图解读Java异常与断言
- oracle系列笔记(2)---多表查询
- 第10天:CSS初始化操作
- checkeds 选中获取tbale表格中某一列td标签中的值
- 模拟银行业务的JS实现
- Jenkins配置项目构建后的钉钉通知
- CAD扩展属性的提取--FME方式
- [转]NSIS常用代码整理
- Android数据填充器LayoutInflater
- React的setState如何实现同步处理数据
- Mac系统升级至OS X Mavericks后Genymotion出现的问题及解决方法
- 什么是设计模式?【php】
热门文章
- 苹果手机Chrome浏览器显示input:disabled时字体颜色总是为浅灰色
- HttpContext.Current.Server.MapPath(";";) 未将对象设置到引用的
- CodeForces - 1236B (简单组合数学)
- 基于Spark.NET和ML.NET Automated ML (自动学习)进行餐厅等级的检查预测
- postman---post请求数据类型
- Jenkins显示reportng测试报告
- 【未完成】【oracle】存储过程按日期循环
- c#数组没有Remove方法,转换为list,再使用Remove方法(例如数组 a,b,c 去除b 只剩a c)
- Java List<;T>; 去重
- Mac流程图的软件