unity 屏幕坐标转换
时间: 2023-10-31 22:59:34 浏览: 119
Unity 屏幕坐标转RectTransform局部坐标
在 Unity 中,屏幕坐标可以用 Camera 类中的 ScreenToWorldPoint() 或者 ScreenToViewportPoint() 方法进行转换。
ScreenToWorldPoint() 方法将屏幕坐标转换为世界坐标。使用该方法需要先获取一个 Camera 对象,然后调用该方法并传入屏幕坐标即可。例如:
```csharp
public Camera mainCamera;
void Update() {
if (Input.GetMouseButtonDown(0)) {
Vector3 mousePos = Input.mousePosition;
mousePos.z = -mainCamera.transform.position.z;
Vector3 worldPos = mainCamera.ScreenToWorldPoint(mousePos);
Debug.Log("Mouse position in world coordinates: " + worldPos);
}
}
```
上面的代码在鼠标左键点击时,将屏幕坐标转换为世界坐标并输出到控制台。
ScreenToViewportPoint() 方法将屏幕坐标转换为视口坐标。视口坐标是相对于相机视口的坐标,其范围在 (0,0) 到 (1,1) 之间。例如:
```csharp
public Camera mainCamera;
void Update() {
if (Input.GetMouseButtonDown(0)) {
Vector3 mousePos = Input.mousePosition;
Vector3 viewportPos = mainCamera.ScreenToViewportPoint(mousePos);
Debug.Log("Mouse position in viewport coordinates: " + viewportPos);
}
}
```
上面的代码在鼠标左键点击时,将屏幕坐标转换为视口坐标并输出到控制台。
阅读全文