Unity的坐标系

本文详细阐述了Unity中世界、局部、屏幕和视口四种坐标系的概念,并提供了坐标转换的方法,如WorldToScreenPoint、ScreenToWorldPoint等。此外,还提到了GUI坐标系以及相关转换,附带了一个动态展示各种坐标系的Demo。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍了Unity中的几种常用坐标系以及坐标系之间的转换方法,并在文末附上一个展示各种坐标系数据的Demo

 

1. 世界(局部)坐标系

以世界原点为坐标原点建立的三维坐标系,获得GameObject世界坐标的接口为Transform.position 。局部坐标系是GameObject以Parent的世界坐标点为坐标原点建立的三维坐标系,GameObject的局部坐标即与Parent的相对位置。若GameObject无Parent,其局部坐标与世界坐标相同,获得GameObject局部坐标系的接口为Transform.localPosition

世界坐标转化为屏幕坐标 Camera.WorldToScreenPoint

世界坐标转化为视口坐标 Camera.WorldToViewportPoint

 

2. 屏幕坐标系

以屏幕左下角为原点建立的一个二维坐标系,屏幕的左下角坐标为(0, 0),右上角为(Screen.width, Screen.height)。通过Input.mousePosition获取的鼠标坐标是一个屏幕坐标。通过屏幕坐标计算世界坐标需要指定世界坐标所在点距离相机的距离,而通过射线进行物理碰撞检测的方式需要GameObject带有Collider组件。

屏幕坐标转化为世界坐标 Camera.ScreenToWorldPoint

屏幕坐标转化为视口坐标 Camera.ScreenToViewportPoint

 

3. 视口坐标系

以屏幕左下角为原点建立的一个二维坐标系,左下角为(0, 0),右上角为(1, 1)。

视口坐标转化为世界坐标 Camera.ViewportToWorldPoint

视口坐标转化为屏幕坐标 Camera.ViewportToScreenPoint

 

4. GUI坐标系

以屏幕左下角为原点建立的一个二维坐标系,屏幕的左上角坐标为(0, 0),右下角为(Screen.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值