|
三维数学-坐标系及各坐标系转换方法的讲解
* 坐标系
* World Space(全局坐标系)
* · 世界(全局)坐标系:整个场景的固定坐标。
* · 作用:在游戏场景中表示 每个 游戏对象的 位置 和 方向。
* · 世界原点(0,0,0)
*
* Local Space(局部坐标系)
* · 物体(局部)坐标系:每个物体独立的坐标系,原点为模型轴心点,随物体移动或旋转而改变。
* · 作用:表示物体间相对位置与方向。
*
* Screen Space(屏幕坐标系)
* · 屏幕坐标系:以像素为单位,屏幕左下角为原点(0,0),右上角为屏幕宽、高度(Screen.width,Screen.height),Z为到相机的距离。
* · 作用:表示物体在屏幕中的位置
*
* Viewport Space(摄像机坐标系)
* · 视口(摄像机)坐标系:屏幕左下角为原点(0,0),右上角为(1,1),Z为到相机的距离。
* · 作用:表示物体在摄像机中的位置。
*
* Screen Space(屏幕坐标系)和Viewport Space(摄像机坐标系)很类似,需根据需求选择使用
* 当知道某个详细像素点的时候,使用Screen Space(屏幕坐标系),大概知道在屏幕的哪个位置的时候使用Viewport Space(摄像机坐标系)
*
* 坐标系转换
* Local Space --> World Space (局部坐标转换为全局坐标)
* · transform.forward 在世界坐标系中表示物体正前方。
* · transform.right 在世界坐标系中表示物体正右方。
* · transform.up 在世界坐标系中表示物体正上方。
*
* · transform.TransformPoint 转换点,受变换组件位置、旋转和缩放影响。(原点组件位置、旋转和缩放有变化,转换点就会跟着变)
* · transform.TransformDirection 转换方向,受变换组件旋转影响。(原点的旋转有变化,转换点才会跟着变)
* · transform.TransformVector 转换向量,受变换组件旋转和缩放影响。(原点的旋转和缩放有变化,转换点才会跟着变)
*
* World Space --> Local Space (全局坐标转换为局部坐标)
* · transform.InverseTransformPoint
* 转换点,受变换组件位置、旋转和缩放影响。
* · transform.InverseTransformDirection
* 转换方向,受变换组件旋转影响。
* · transform.InverseTransformVector
* 转换向量,受变换组件旋转和缩放影响。
*
* World Space <--> Screen Space (全局坐标可相互转换为屏幕坐标)
* · Camera.main.WorldToScreenPoint (Camera可以是相机的引用后使用main方法!!)
* 将点从世界坐标系转换到屏幕坐标系中
* · Camera.main.ScreenToWorldPoint
* 将点从屏幕坐标系转换到世界坐标系中
*
* World Space <--> Viewport Space (全局坐标可相互转换为摄像机坐标)
* · Camera.main.WorldToViewportPoint (Camera可以是相机的引用后使用main方法!!)
* 将点从世界坐标系转换到视口坐标系中
* · Camera.main.ViewportToWorldPoint
* 将点从屏幕坐标系转换到世界坐标系中
|