public gameobject targetobject; //目標物體
public camera worldcamera; //世界相機。
public camera guicamera; //ui相機
// use this for initialization
void start()
worldcamera =nguitools.findcameraforlayer(targetobject.layer); //這裡是通過物體的層獲得相應層上的相機
guicamera = nguitools.findcameraforlayer(this.gameobject.layer); //通過指令碼所在物體的層獲得相應層上的相機
// update is called once per frame
void update()
void lateupdate()
vector3 pos = worldcamera.worldtoscreenpoint(targetobject.transform.position); //獲取目標物體的螢幕座標
pos = guicamera.screentoworldpoint(pos); //將螢幕座標轉換為ui的世界座標
pos.z = 0; //由於ngui 2d介面的z軸都為0
transform.position =new vector3(pos.x,pos.y,pos.z); //將修改過的座標賦給ui介面
2、將ngui的座標改為unity中的世界座標,**如下所示:
gameobject targetobject = (gameobject)instantiate(resources.load("model/"+name));
camera worldcamera = nguitools.findcameraforlayer(targetobject.layer); //這裡是通過物體的層獲得相應層上的相機
camera guicamera = nguitools.findcameraforlayer(obj.layer); //通過指令碼所在物體的層獲得相應層上的相機
if (worldcamera == null || guicamera == null)
return;
vector3 pos = guicamera.worldtoscreenpoint(obj.transform.position); //獲取ui介面的螢幕座標
pos.z = 1f;//設定為零時轉換後的pos全為0,螢幕空間的原因,被坑過的我提醒大家,切記要改!
pos = worldcamera.screentoworldpoint(pos); //將螢幕座標轉換為世界座標
pos.y = 0f;
targetobject.transform.position = new vector3(pos.x, pos.y, pos.z); //將修改過的座標賦給目標物體座標
unity中螢幕和世界座標系區別
螢幕座標系是這個 o x軸 vy軸 通常在使用原生gui繪製時要考慮,這些gui元件不屬於編輯器中的物體,繪製時並不會參加物體的深度計算等操作,等到物體繪製完它才最後繪製到螢幕。世界座標系是這個 y軸 o x軸 能在編輯器看到的都是使用世界座標,例如ngui ugui這些雖然是ui元件,但其實都是編...
關於Unity中的世界座標和區域性座標
1.物體的區域性座標的方向 物體自身的方向 transform.forward transform.right transform.up 2.物體的世界座標的方向 vector3.forward vector3.right vector3.up 例子 子彈沿自身座標軸的z軸方向運動 vector3 ...
Unity 世界座標與本地座標
你在物體元件上看到的就是本地座標,是相對于父物體的座標。在 中用transform.position獲得的是世界座標,所以不一定等於你在元件上看到的值。transform.rotation的旋轉值範圍為 1 1 對應著 180 180 transform.rotation值是float型別的,當你想...