# 【世界坐标系和屏幕坐标系】

Unity 使用的是左手坐标系

# 世界坐标系

  • x轴向 → 为正
  • y轴向 ↑ 为正
  • z轴向由屏幕外向屏幕里射穿的方向为正

把一个坐标点从"世界"坐标"转"换成当前transform的"本地"坐标 如

Vector3 ptLocal = cam.transform.InverseTransformPoint(fovPt.transform.position);

【全局局部坐标系转换】

# 屏幕坐标系

  • 原点在屏幕左下角
  • → 为x正方向
  • ↑ 为y正方向
  • 插进屏幕方向为z
//物体的世界坐标转换为屏幕坐标
Camera.WorldToScreenPoint()
//屏幕坐标转换为世界坐标
Camera.ScreenToWorldPoint()

# 屏幕宽度和高度

Screen.width 和 Screen.height

# 点击屏幕射线

屏幕上的一点射出一条射线,获取射线击中的对象: 关键在于Camera 里的 ScreenPointToRay 方法得到射线。

# 屏幕位置

Input.mousePosition.x 和 y