2011年10月12日

[Unity] 画面内に透視されるオブジェクト座標

Unityのオブジェクトは3D空間にあります。
そのオブジェクトが画面に映し出されたとき、画面内での座標を知りたい!

それが出来るメソッドが「WorldToScreenPoint()」です。
スクリーンショットは、オブジェクトが画面に透視された際のウィンドウ内の座標を表示しています↓

20111012windowposition.png

使っているスクリプト

-----------------------------------
move.js ※Cubeを動かしているスクリプト
function Update () {
transform.position = Vector3(Mathf.Cos(Time.time) * 2, Mathf.Sin(Time.time) * 3, 0);
}
-----------------------------------
mainCamera.js ※カメラに適用しているスクリプト
var game_o : GameObject;
private var pos : Vector3;

function Update () {
pos = camera.WorldToScreenPoint(game_o.transform.position);
}

function OnGUI (){
GUI.Label(Rect(pos.x, Screen.height - pos.y + 30, 200, 50), pos.x + " , " + pos.y);
}
-----------------------------------


サンプルを見てもらうとわかりますが、画面左下が(0, 0)になっています。

実際に動いている例(プロジェクトもダウンロードできます)
http://be-style.jpn.com/unity/20111012/

posted by be-style at 22:48| Comment(0) | Unity
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]