-
유니티 화면 비율 고정 처리...8일지 2021. 9. 28. 15:46
감지 처리 실패
유니티의 입력으로 처리를 하려고 했으나 여전히 창 내부만 지원하기 때문에 감지가 되지 않았다.
윈도우에서 직접 클릭한 정보를 받아올 필요가 있다.
ResolutionController.cs
private void Update() { if (m_isUpdating) { return; } IntPtr hCursor = GetCursor(); if (!m_isChanging && IsChanging(hCursor) && Input.GetMouseButtonDown(0)) { m_isChanging = true; Debug.Log("StartChange"); } else if(m_isChanging && Input.GetMouseButtonUp(0)) { StartCoroutine(SetFixedResolution()); } }
클릭 감지 처리에 필요한 API 확인
WinAPI에서 클릭을 받아올 수 있는 함수를 찾아보자.
구글링 결과 GetAsyncKeyState 함수를 이용해 키 상태를 받아올 수 있다고 한다.
해당 함수를 사용하기 위해 마우스 왼쪽 버튼의 값을 알아야 하는데 친절하게 VK_LBUTTON을 사용하면 된다고 적혀있다. 그리고 해당 값을 찾아본 결과 0x01을 사용하면 되는 것 같다.