unity坐标系间的转换
1.世界坐标系:游戏内对象都在一个世界坐标系内,可以放心的使用世界坐标进行transform的运算。
2.局部坐标系:基于父物体的坐标系,适合基于父物体做的transform运算,运算时要确保两个对象在一个本地坐标系内。recttransform的width和height是本地坐标系,需要求宽高的世界长度可以使用
Vector3[] corners = new Vector3[4];
_inst.rectTransform.GetWorldCorners(corners);
Vector3 widthDelta = corners[2] - corners[1];
Vector3 heightDelta = corners[0] = corners[1];
将点坐标与widthDelta和heightDelta相加减就可以得出世界空间下的rect边缘坐标。
3.视口坐标系:与屏幕分辨率无关,左下(0,0),右上(1,1),适合用来检测对象是否显示在屏幕上(映射到视口坐标系后的x,y都在0,1之间)。
4.屏幕坐标系:左下(0,0),右上(Screen.Width,Screen.Height),适合用来计算手指输入与UI间的运算,计算时注意Camera.aspect与Game窗口的aspect不同时会缩放。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了