unity坐标转换问题
转换 Unity 坐标 问题
2023-09-14 09:09:00 时间
unity最经常使用的几种坐标。屏幕坐标。世界坐标。ngui坐标,相对于父物体的坐标(localPoisition)。
可是有时候这几种坐标相互转换何其困难,让自己狠抓头。
不得不操作的方式是创建虚拟体,然后来回改变他的父节点(parent),
只是unity提供了两个方法挺好用的。攻克了全部坐标转换问题,
InverseTransformPoint: 绝对坐标转相对坐标,也就是世界坐标转你想要放到的父节点下的相对坐标。
TransformPoint: 相对坐标转绝对坐标,也就是你想要放到的父节点下的相对坐标转成世界坐标,
调用方法就是,比方你想把鼠标点击的位置转换成你某一个父节点下的ngui坐标。
操作例如以下
Vector3 vec = new Vector3(); Ray ray=UICamera.mainCamera.ScreenPointToRay(Input.mousePosition);// 向屏幕发射线 RaycastHit hit; if(Physics.Raycast(ray,out hit)) { vec = 你想转到的父节点物体.transform.InverseTransformPoint(hit.point); }
这样就得到了一个屏幕点击转向ngui的父节点的相对坐标。其它的物体也是用此类方法使用,
这样保证了操作坐标的流畅性,不用创建那么多的虚拟体,
当然相对坐标转绝对坐标也一样的使用方法。不用创建虚拟体。你想把某一个父节点下的相对于这个父节点的某一个位置转成世界坐标跟上边一样的使用方法。
你当前的父物体.transform.TransformPoint(相对于该父物体的位置);
这样就能够转成世界坐标,世界坐标通用场景全部物体,想做什么就能够做什么了
相关文章
- Git浅拷贝转换为深拷贝
- python 时间字符串和时间戳之间的转换
- 将当天时间转换为unix时间戳
- (剑指Offer)面试题49:把字符串转换为整数
- C++时间戳转换
- python3 和python2文件相互转换
- 《安富莱嵌入式周报》第294期:将C/C++代码转换为各种高级语言,超炫渲染着色器,VS2022新闻插件,基于以太网的开源步进电机控制器,Arduino PLC
- ArcEngine下投影坐标和经纬度坐标的相互转换
- 源代码转换:Tangible Software Solutions v22.10.20
- TF之VGG系列:利用预先编制好的脚本data_convert .py文件将图片格式转换为tfrecord 格式
- 【python】统一转换日期格式dateutil.parser.parse
- LeetCode 1317. 将整数转换为两个无零整数的和
- NYOJ109 数列转换 【守恒法】
- fastjson 之常见的数据类型与json的相互转换
- leaflet 转换geojson文件,导出KML格式文件(096)
- 接口数据转换小练习
- 原码、反码、补码的互相转换
- JS从0到1——654. 时间转换