화면 비율 고정
-
유니티 화면 비율 고정 처리...6일지 2021. 9. 24. 22:03
커서 확인용 함수 확인 현재 커서의 핸들을 가져오는 함수인 GetCursor의 동작을 확인했다. 그러나 GetIconInfo로는 다른 아이콘의 핸들 정보를 알 수 없었기에 다른 함수를 찾아봤으며 찾기 결과 LoadCursorA라는 함수를 찾을 수 있었다. HCURSOR LoadCursorA( HINSTANCE hInstance, LPCSTR lpCursorName ); HCURSOR와 HINSTANCE는 IntPtr로 대체할 수 있으며 LPCSTR을 string으로 대체할 수 있다. 수정하여 진행했으나 결과가 제대로 나오지 않았다. 추가로 더 찾아보니 C#에서는 다음과 같이 사용할 수 있다고 한다. [DllImport("user32.dll")] static extern IntPtr LoadCursor(I..
-
유니티 화면 비율 고정 처리...5일지 2021. 9. 20. 13:12
WinAPI 마우스 처리 함수 마우스의 상태를 가져오는 함수들을 찾아보면 다음과 같은 종류가 존재한다. GetCursor 커서의 핸들을 반환한다. GetCursorInfo 커서의 CursorInfo(커서 핸들, 커서 좌표) 구조체를 반환한다. GetCursorPos 커서의 좌표를 반환한다. GetIconInfo 주어진 커서 혹은 아이콘의 이미지를 반환한다. LoadCursorA 변수 중 hInstance를 null로 하고 원하는 커서 모양의 번호를 입력하면 미리 정의된 커서의 핸들을 반환한다. 이상의 함수에서 얻을 수 있는 정보 중 그나마 처리할 만한 건 GetCursor로 현재 커서를 가져온 뒤 LoadCursorA로 Resize와 관련된 커서의 핸들을 가져와 비교하여 현재 화면 크기 변경이 진행되고 ..
-
유니티 화면 비율 고정 처리...4일지 2021. 9. 19. 22:59
WinAPI에서 드래그 종료를 체크할 방법에 대한 고민 드래그 종료를 감지하는 게 유니티에는 당연하게 존재하지 않으며 이것을 체크하기 위해 WinAPI를 사용해야 했다. 먼저 떠올린 건 콜백 이벤트. WinAPI에는 다양한 이벤트가 존재하고 해당 이벤트를 전달받은 뒤 수행할 내용을 따로 작성할 수 있기 때문에 해당 내용을 찾아봤다. c++ - WinAPI. Check if window resizing has been finished - Stack Overflow WinAPI. Check if window resizing has been finished I've got C++ application (used for share application's window via network). I need to ..
-
유니티 화면 비율 고정 처리...3일지 2021. 9. 18. 18:20
코루틴 사용 및 변경 처리 중 중복 변경 블록 이전에 문제가 됐던 것을 확인하여 코루틴을 사용하도록 변경하고 화면 변경 중에는 다시 코루틴이 발동하지 않도록 처리했다. ResolutionController.cs using System; using System.Collections; using UnityEngine; public class ResolutionController : MonoBehaviour { public float AspectX { get; set; } = 16; public float AspectY { get; set; } = 9; private float m_aspectRatio; private int m_screenSizeX; private int m_screenSizeY; priva..
-
유니티 화면 비율 고정 처리...2일지 2021. 9. 17. 21:17
특정 비율 고정 처리 구현 유니티의 Update 에서 화면 비율이 바뀐 것을 확인하여 변경 처리하도록 구현한다. ResolutionController.cs using System; using UnityEngine; public class ResolutionController : MonoBehaviour { public float AspectX { get; set; } = 16; public float AspectY { get; set; } = 9; private float m_aspectRatio; private int m_screenSizeX; private int m_screenSizeY; void Start() { m_aspectRatio = AspectX / AspectY; m_screenSize..
-
유니티 화면 비율 고정 처리...1일지 2021. 9. 16. 18:50
특정 화면 비율 고정 처리 원하는 화면 비율이 16:9 라고 할 때 화면의 가로나 세로를 기준으로 화면 비율을 고정하는 방법은 다음과 같다. aspectX = 16 aspectY = 9 aspectRatio = aspectX / aspectY Case 너비를 기준으로 높이를 맞추는 경우 → newHeight = newWidth / aspectRatio Case 높이를 기준으로 너비를 맞추는 경우 → newWidth = newHeight * aspectRatio