Unity

드래그

lipnus 2018. 10. 11. 00:14
반응형

 


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은 카메라로부터의 거리를 월드 단위로 환산한 값입니다.

JavaScript
var target : Transform;

function Update () {
var screenPos : Vector3 = camera.WorldToScreenPoint (target.position);
print ("target is " + screenPos.x + " pixels from the left");
}


반응형

'Unity' 카테고리의 다른 글

자식객체 검색  (0) 2018.10.16
Intellij Rider에서 중괄호 Java형식으로 바꾸기  (0) 2018.10.15
드래그  (0) 2018.10.10
Random(난수) 생성  (0) 2018.10.08
[Animation] 점프  (0) 2018.10.07