Unity坐標系

一 坐標系簡介

1 世界坐標系

可以用transform.position獲取


世界坐標系
2 局部坐標系

局部坐標系是相對于父物體來說的:
當2個游戲對象互為父子關系,那么子物體就會以父物體的坐標點為自身坐標原點

局部坐標系

下面是子物體的Transform組件和打印的坐標結果,可以看出Transform組件顯示的坐標是相對于父物體為坐標原點的


子物體的Transform組件
打印結果
3 相機坐標系

根據觀察位置和方向建立坐標系。
用次坐標系可以方便判斷物體是否在相機前面,以及物體之間先后遮擋順序,它會優(yōu)先渲染離它最近的物體

4 屏幕坐標系

建立在屏幕上的二維坐標系,用來描述像素在屏幕上的位置
以屏幕左下角為坐標原點(0,0)。
右上角為(Screen.width,Screen.height),

void Update () {
       if (Input.GetMouseButtonDown(0))
       {
           //獲取游戲界面鼠標左鍵點擊的坐標
           Debug.Log(Input.mousePosition);
       }
}
void Start (){ //獲取游戲界面里選中物體的坐標
        Vector3 vc = Camera.main.WorldToScreenPoint(transform.position);
        Debug.Log(vc);
}
5 視口坐標系

視口坐標是標準的和相對于相機的。相機左下角為(0,0)點,右上角為(1,1)點。

二 坐標系的轉換

1 全局坐標系轉局部坐標系
public GameObject a;
void Start () {
       Debug.Log("this的坐標" + this.transform.position);
       Debug.Log("a的坐標" + a.transform.position);
       //輸出的是a-this的坐標
       Vector3 v2 = this.transform.InverseTransformPoint(a.transform.position);
       Debug.Log("全局坐標變局部坐標" + v2);
}
打印結果

2 局部坐標系轉全局坐標系

public GameObject a;
void Start () {
        Debug.Log("this的坐標" + this.transform.position);
        Debug.Log("a的坐標" + a.transform.position);
        //輸出的是a+this的坐標
        Vector3 v1 = this.transform.TransformPoint(a.transform.position);
        Debug.Log("局部轉全局" + v1);
}
打印結果
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 3D坐標系是在做3D項目開發(fā)中的基礎概念,一般來說3D軟件或者開發(fā)工具都是采用笛卡爾坐標系來描述物體的坐標信息。笛...
    S_H_C閱讀 6,956評論 0 6
  • 一、Unity3D中有哪些坐標系? 坐標系這個概念最早是由法國數學家笛卡爾提出的,并由此創(chuàng)造了用代數方法來研究幾何...
    OneMore2018閱讀 4,682評論 0 7
  • 無論是2d還是3d游戲開發(fā),圖形學都是基礎,解析幾何的基本思想是將幾何圖形抽象成點的運動軌跡,從而點可以作為組成圖...
    tmgg閱讀 13,079評論 2 4
  • 一 、世界坐標系--全局坐標系: 用來描述游戲場景內所有物體位置和方向的基準,也稱為世界坐標系。Unity場景中創(chuàng)...
    _涼笙閱讀 5,363評論 0 4
  • 笛卡爾坐標系的定義 :1、每個2D笛卡爾坐標系都有一個特殊的點,稱為原點(0,0)它是坐標系的中心。2、每個2D笛...
    好怕怕閱讀 3,542評論 3 8

友情鏈接更多精彩內容