Quick Reference
UniWindowController는 Unity로 빌드한 Windows·macOS standalone 앱에서 운영체제 창의 모양과 동작을 제어하는 패키지입니다.
창 모양: 배경 투명화 / 테두리 제거 / 항상 위 표시
창 제어: 위치·크기 변경 / 최대화 / 마우스 드래그 이동
입력 처리: 불투명 영역만 클릭 / 투명 영역은 아래 창으로 전달
외부 입력: 운영체제에서 드롭한 파일·폴더 경로 수신
선택: 데스크톱 마스코트, 오버레이, 비정형 도구 창을 Unity로 만들 때
제약: 투명 배경은 Editor·Direct3D 12에서 사용 불가 / URP alpha 설정 필요 / 다중 창 미지원 / touch 제한살펴볼 지점
투명한 렌더링 결과를 창 모양처럼 사용하면서 실제 창은 사각형으로 유지합니다. 커서 아래 픽셀의 투명도를 검사하는 Opacity 방식과 Collider를 검사하는 Raycast 방식으로 click-through를 전환하며, 성능이 중요한 화면은 Raycast, 별도 Collider 구성이 부담스러운 화면은 기본 Opacity 방식부터 살펴볼 수 있습니다.
Unity Package Manager로 설치한 뒤 제공되는 UniWindowController prefab을 scene에 배치하는 흐름입니다. 창 위치·크기, 투명화, 항상 위, click-through 상태는 공개 C# property로도 제어할 수 있어 설정 화면이나 런타임 상태와 연결하기 좋습니다.
도입 전 확인
배경 투명화는 Unity Editor가 아니라 standalone build에서 확인해야 합니다. Windows의 Direct3D 12에서는 투명 배경을 사용할 수 없고, URP에서는 Camera의 HDR을 끄고 alpha channel이 보존되도록 AlphaProcessing을 켜야 합니다. 다중 창은 지원하지 않으며 touch 동작도 제한적입니다.
Raycast hit test를 선택하고 Collider를 빠뜨리면 클릭 가능한 영역도 아래 창으로 통과할 수 있습니다. 운영체제, graphics API와 render pipeline 조건이 함께 맞아야 하는 native plugin이므로 패키지를 채택하기 전에 목표 플랫폼의 실제 빌드에서 입력과 투명도를 먼저 검증합니다.
참고 링크
1 sources