게임 프로그래밍/Unity

화면 클릭 시 위치에 오브젝트 생성하기

스게 2021. 11. 12. 11:17
if (Input.GetMouseButtonDown(1))
        {
            //마우스 위치 찾기
            Vector3 mousePos = Input.mousePosition;
            // 스크린 좌표에 존재하는 마우스 포지션을
            // 오브젝트가 있는 월드좌표로 변환
            Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(mousePos);
            //카메라보다 앞으로 보내기 위해 Z위치 조정
            worldMousePos.z = 0f;
            //기존에 만들어진 메뉴가 있으면 기존 메뉴 마우스 위치로 변경
            if (hasRightClickMenu == true)
            {
                GameObject.FindGameObjectWithTag("RightClickMenu").gameObject.transform.position = worldMousePos;
            }
            //없으면 생성
            else
            {
                //우클릭메뉴 오브젝트 생성
                Instantiate(rightClickMenuGO, worldMousePos, Quaternion.identity);
                //RightClickMenu 생성되었음을 기록
                hasRightClickMenu = true;
            }       
        }
       

 

Input.GetMouseButtonDonw : 마우스가 클릭되는 순간만 True를 반환한다. 보통 0은 좌클릭, 1은 우클릭, 2는 중간클릭이다.

 

 

Camera.main.ScreenToWorldPoint() : 우리가 찍은 위치는 화면의 위치이기 때문에 게임상의 위치를 변환시킨다.

 

GameObject.FindGameObjectWithTag("RightClickMenu").gameObject.transform.position = worldMousePos : 이렇게 얻은 worldMousePos를 이용해 원하는 위치에 오브젝트를 생성