Appearance
【世界坐标系和屏幕坐标系】
Unity 使用的是左手坐标系
世界坐标系
- x轴向 → 为正
- y轴向 ↑ 为正
- z轴向由屏幕外向屏幕里射穿的方向为正
把一个坐标点从"世界"坐标"转"换成当前transform的"本地"坐标 如
CSharp
Vector3 ptLocal = cam.transform.InverseTransformPoint(fovPt.transform.position);
屏幕坐标系
- 原点在屏幕左下角
- → 为x正方向
- ↑ 为y正方向
- 插进屏幕方向为z
CSharp
//物体的世界坐标转换为屏幕坐标
Camera.WorldToScreenPoint()
//屏幕坐标转换为世界坐标
Camera.ScreenToWorldPoint()
屏幕宽度和高度
Screen.width 和 Screen.height
点击屏幕射线
屏幕上的一点射出一条射线,获取射线击中的对象: 关键在于Camera 里的 ScreenPointToRay 方法得到射线。
屏幕位置
Input.mousePosition.x 和 y