之前查了下座標轉換的資料,網上都是直接摘抄的Unity3D官方的原文
後來做了實驗,寫出自己的一點體會
1.世界座標轉換成屏幕座標
var c : Camera;
var dd : Vector3;
var pp : Vector3;
function Start()
{
c = Camera().main;
var w2v = c.WorldToScreenPoint;
dd = Vector3(1,1,-95);
pp = w2v(dd);
Debug.Log(" dd : " + pp);
}
得出的座標結果是與你的攝像機位置有關的,按上例來說,pp的三個向量(x,y,z)中,(x,y) 爲dd 轉換後在屏幕中的座標位置,
z 爲攝像機的clipping planes (視切面) 的近端板也就是near plane 與dd的z值的差距,攝像機正面方向爲正,攝像機背面方向爲負.
也就是說,當dd在攝像機視野正面時,pp的z 值爲正號, 反之, pp.z 爲負號。