Unity3D座標轉換——3D物體在屏幕上的座標賦值給UI

老是記不住,今天就寫下來吧

我們都知道unity自帶轉換座標的方法

Camera.main.WorldToScreenPoint();

只要場景裏帶有一個camera並且給他附上MainCamera 的tag,就可以使用,參數是你要轉換的原始座標。

但是他轉出來的座標系是下圖這樣的,從左下角(0,0)開始,到右上角屏幕寬高結束


而我們UI的座標系確是以屏幕中心爲(0,0)點,所以用那個camera方法轉出來的結果還要處理一下才能用到UI上;
 

處理方法很簡單,座標系的轉換而已,中學應該學過

        var x = Camera.main.WorldToScreenPoint(car.localPosition).x;
        var y = Camera.main.WorldToScreenPoint(car.localPosition).y;

        v.x = x - Screen.width / 2;

        v.y = y - Screen.height / 2;

最後v的結果就是我們要的結果了,可以對v的x,y做一些偏移處理,比如y值增加一些(是的,我就是爲了做一個人物頭頂扣血的數字顯示糾結了這麼久!)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章