标签:Screen transform 世界坐标 Unity 坐标 position 屏幕 坐标系
世界坐标(World Space)
场景中添加的对象,它们是以世界坐标显示在场景中,可以通过代码transform.position获得该对象的世界坐标,那么我们在检视面板(Inspector)中看到的Position的值在对象没有父物体时,这个值和transform.position
得到的结果一致的,若该对象有父物体,那么检视面板中(Inspector)看到的即为相对于父物体的相对坐标位置,这样通过transform.position得到的值自然就不一样了。总之,通过transform.position
得到的都是对象的世界坐标。在对象存在父物体的情况下,若想要得到该对象在检视面板(Inspector)中的值,可以通过transform.localPosition
得到。
屏幕坐标(Screen Space)
屏幕坐标是通过像素来定义的,屏幕坐标的坐标系以屏幕左下角为(0,0)点,右上角为(Screen.width,Screen.height),屏幕坐标为3维坐标,z的大小由相机的世界位置来定义。通过Input.mousePosition得到的是屏幕坐标,屏幕坐标的数值只与屏幕的大小有关,跟分辨率没有关系。
视口坐标(View Space)
视口坐标标准化后的屏幕坐标,它的坐标原点同样是左下角为(0,0)点,只不过右上角为(1,1)点,若对象处在场景的正中间,则对象的视口坐标为(0.5,0.5),与屏幕坐标一样,视口坐标也是一个3维的,它的z方向的数值由相机的世界位置来决定。
GUI坐标系
GUI坐标系主要在通过OnGUI方法绘制屏幕UI界面时运用较多,GUI坐标系是一个2维坐标系,与屏幕空间类似,所表示的范围也是整个屏幕空间范围,只不过GUI坐标的坐标原点在左上角,即左上角为(0,0)点,右下角为(Screen.width,Screen.height)。
坐标之间的转换
世界坐标通过transform.position
获得
局部坐标通过transform.Localposition
获得
世界坐标与屏幕坐标之间的转换
Camera.main.ScreenToWorldPoint(Vector 3)
——屏幕坐标转换到世界坐标,其中的main为主相机,当然也可以为场景中其他相机 Camera.main.WorldToScreenPoint(transform.position)
——世界坐标转换到屏幕坐标 ,其中的main为主相机,当然也可以为场景中其他相机。这里附带一个鼠标拖拽物体的代码,其中主要就是世界坐标与屏幕坐标之间转换
标签:Screen,transform,世界坐标,Unity,坐标,position,屏幕,坐标系 来源: https://www.cnblogs.com/godshadow/p/14994068.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。