unity 坐标系转换_Unity 数学笔记
时间: 2024-01-18 19:04:50 浏览: 135
Unity 坐标系转换是在游戏开发中经常需要用到的一种技巧。在 Unity 中,有三种坐标系:世界坐标系、局部坐标系和屏幕坐标系。下面我会分别介绍它们之间的转换方式。
1. 世界坐标系和局部坐标系
在 Unity 中,物体的坐标系分为世界坐标系和局部坐标系。世界坐标系是以场景中心为原点建立的坐标系,而局部坐标系是以物体自身为原点建立的坐标系。
在进行物体坐标系的转换时,可以使用以下方法:
将一个物体的世界坐标系坐标转换为局部坐标系坐标:
```csharp
Vector3 localPos = transform.InverseTransformPoint(worldPos);
```
将一个物体的局部坐标系坐标转换为世界坐标系坐标:
```csharp
Vector3 worldPos = transform.TransformPoint(localPos);
```
2. 屏幕坐标系和世界坐标系
在 Unity 中,屏幕坐标系是以屏幕左下角为原点建立的坐标系。将屏幕坐标系转换为世界坐标系需要使用 Camera.ScreenToWorldPoint 方法,代码如下:
```csharp
Vector3 worldPos = Camera.main.ScreenToWorldPoint(screenPos);
```
其中,screenPos 是屏幕坐标系下的坐标,Camera.main 表示主摄像机。
将世界坐标系转换为屏幕坐标系需要使用 Camera.WorldToScreenPoint 方法,代码如下:
```csharp
Vector3 screenPos = Camera.main.WorldToScreenPoint(worldPos);
```
其中,worldPos 是世界坐标系下的坐标,Camera.main 表示主摄像机。
以上就是 Unity 坐标系转换的常用方法。在游戏中,特别是在 UI 界面中,经常需要进行坐标系的转换,掌握这些方法可以使开发更加便捷。
阅读全文