게임 프로그래밍/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를 이용해 원하는 위치에 오브젝트를 생성