프레임 제한 설정을 만드는데 프레임 제한하니까 마우스도 같이 느려지는 현상이 발생했다. 의도한 동작은 게임 내의 애니메이션 프레임을 제한하는 것이었는데, 마우스까지 느려지니까 굉장히 불편했다. 알고보니 프로젝트가 전체 창모드로 되어있어서 그랬다. 전체 창모드도 전체화면 모드로 들어가나보다.
전체화면 모드 vs 창 모드의 차이
전체화면 모드 (FullScreen, FullScreenWindow)
- DirectX/OpenGL이 디스플레이를 독점적으로 제어
- Windows DWM(Desktop Window Manager)이 우회되거나 제한적으로 작동
- Application.targetFrameRate가 시스템 전체 리프레시율에 영향을 줄 수 있음
- 마우스 커서도 같은 리프레시율에 맞춰질 수 있음
창 모드 (Windowed)
- Windows DWM이 창을 관리
- Unity는 자신의 창만 렌더링
- Application.targetFrameRate는 Unity 애플리케이션의 렌더링 루프에만 영향
- 마우스 커서는 Windows 시스템이 별도로 렌더링하므로 영향받지 않음
기술적 설명
창 모드에서는:
- Unity 창: Unity 엔진이 제어하는 렌더링 영역
- Windows 데스크톱: DWM이 관리하는 나머지 영역
- 마우스 커서: Windows 커널/시스템이 별도로 렌더링
따라서 Unity의 Application.targetFrameRate는 Unity 창의 렌더링만 제한하고, Windows 시스템이 관리하는 마우스 커서와 다른 애플리케이션에는 영향을 주지 않습니다.전체화면 모드에서는 Unity가 디스플레이를 독점 제어하므로 시스템 전체에 영향을 줄 수 있습니다. 오버레이 프로그램은 창 모드를 사용하는 것이 적합합니다.