public void Drag(){
Debug.Log("마우스위치: " + Input.mousePosition);
//2D(가로로만 스크롤 된다)
float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen));
button.transform.position = new Vector3(pos_move.x, transform.position.y, pos_move.z);
//3D(가로세로 다 스크롤 된다)
float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
button.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen));
}
|
function WorldToScreenPoint (position : Vector3) : Vector3
설명
position을 월드 공간에서 화면 공간으로 변경시킵니다.
화면 공간은 픽셀로 정의됩니다. 화면의 좌하단은 (0,0)이며; 우상단은 (pixelWidth,pixelHeight)입니다. z position은 카메라로부터의 거리를 월드 단위로 환산한 값입니다.
var target :
Transform;
function Update () {
var screenPos :
Vector3 = camera.WorldToScreenPoint (target.position);
print (
"target is " + screenPos.x +
" pixels from the left");
}