老是記不住,今天就寫下來吧
我們都知道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值增加一些(是的,我就是爲了做一個人物頭頂扣血的數字顯示糾結了這麼久!)