当调用别人的接口时,经常会有获取位置或向量的接口。遇到这些数据时,先要弄清楚现在获取的数据在哪个坐标系下的。

是否需要进行坐标系变换,一般提供的位置和向量都是在世界坐标系的,此时需要注意:

  ①对方的坐标系是左手坐标系还是右手坐标系

 因为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);

unity常用的坐标系转换的更多相关文章

  1. iOS实现常用地图坐标系转换(swift5)

    // 桥接后,OC工程也可用 // HTMCoorTransform.swift // HTMapKit // // Created by LongMa on 2021/8/3. // import ...

  2. Unity 中的坐标系

    说明: 注意几点: 0 行向量右乘矩阵与列向量左乘矩阵,两个矩阵互为逆矩阵 1 法线转换与mul,mul函数左乘矩阵当列矩阵计算,右乘当行矩阵计算 2 叉乘与左右手系,左手系用左手,右手系用右手,ax ...

  3. Cocos---监听、触摸事件、坐标系转换

    监听.触摸事件.坐标系转换 Creator的系统事件 分为"节点系统事件"和"全局系统事件". 节点系统事件:触发在节点上,包括鼠标事件和触摸事件. 全局系统事 ...

  4. [转]iOS开发中的火星坐标系及各种坐标系转换算法

     iOS开发中的火星坐标系及各种坐标系转换算法 源:https://my.oschina.net/u/2607703/blog/619183   其原理是这样的:保密局开发了一个系统,能将实际的坐标转 ...

  5. Objective-C上地球坐标系到火星坐标系转换算法

    Objective-C上地球坐标系到火星坐标系转换算法 http://blog.csdn.net/zhaoxy_thu/article/details/17033347

  6. GCJ-02火星坐标系和WGS-84坐标系转换关系

    GCJ-02火星坐标系和WGS-84坐标系转换关系 WGS-84:GPS坐标系 GCJ-02:火星坐标系,国测局02年发布的坐标体系,高德,腾讯等使用. BD-09:百度坐标系,百度自研,百度地图使用 ...

  7. PROJ.4学习——坐标系转换

    PROJ.4学习——坐标系转换 前言 PROJ可以做任从最简单的投影到许多参考数据非常复杂的转换.PROJ最初是作为地图投影工具开发的,但随着时间的推移,它已经发展成为一个强大的通用坐标转换引擎,可以 ...

  8. ArcGIS坐标系转换出错:Error 999999执行函数出错 invalid extent for output coordinate system

    本文主要介绍在用ArcGIS做坐标系转换过程中可能会遇到的一个问题,并分析其原因和解决方案. 如下图,对一份数据做坐标系转换: 过了一会儿,转换失败了.错误消息如下: “消息”中提示,“执行函数出错 ...

  9. 转战JS(1) 初探与变量类型、运算符、常用函数与转换

    转战JS(1)初探与变量类型.运算符.常用函数与转换 做为一名.NET后台开发人员,正考滤向Web前端开发转型,之前也写过一代前端代码,可是当再回头看JS,并有转向它的意愿的时候,突然发现:原来JS不 ...

随机推荐

  1. MySQL事务。

    相关资料:https://zhuanlan.zhihu.com/p/70701037        https://zhuanlan.zhihu.com/p/59061106 一.事务. 1.概念.事 ...

  2. PyCharm颜色设置

    选择主题和背景图片 选择字体.修改字体大小 新建颜色主题 修改背景颜色 修改注释颜色 File --> Setting (Ctrl + Shift + S) 1.选择不同的主题.选择背景图片 A ...

  3. emacs bookmark(书签)初次使用

    emacs bookmark(书签)初次使用 编辑或者查看多个文件的时候,要想记住刚才在什么地方进行编辑,是很难的.所以emacs的bookmark功能就登场了.你可以在文件的任何地方设置一个书签,然 ...

  4. [Go] gocron源码阅读-判断是否使用root用户执行

    判断是linux系统,并且uid为0,allowRoot是通过命令行传参传进来的,通过flag包解析出来的,可以使用go run node.go -h看到这些参数 && !allowR ...

  5. [Go] vscode配置Go环境

    首先要先把环境变量配置好,配置好环境变量打开go文件的时候,会自动提示需要安装的扩展在/root/.profile和/home/当前用户/.profile都加上 export GOPATH=/var/ ...

  6. linux工作队列 - workqueue总览【转】

    转自:https://blog.csdn.net/cc289123557/article/details/52551176 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载 ...

  7. jquery设置下拉框selected浏览器兼容方式

    今天开发过程中偶然发现一个浏览器兼容性问题 当在某些浏览器下面时使用下面的语法会导致值虽然选中了,但是文本没有切换 var options = $("#select").find( ...

  8. 源码编译Kubeadm二进制文件

    kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验k ...

  9. vue中如何使用echarts,使用axios获取数据

    1==>首先准备一个容器 <div id="echartContainer" style="width:400px; height:400px"&g ...

  10. luoguP4404缓存交换

    https://www.luogu.org/problem/P4404 题意 你有一个大小为n的缓存区,有个长度为m的查询序列. 每次查询的时候需要把查询值放入缓存,若缓存已满,则先删除任一位置再将其 ...