대마법사의 개발 블로그랄까?

Unity 듀얼모니터에 UI 화면 출력하기 본문

Unity 한테 정복당하기

Unity 듀얼모니터에 UI 화면 출력하기

대마법사(진) 2025. 1. 12. 23:31

Orthograpic Camera

$$
Orthgrapic Size =
Height / (2*PPU)
$$

  • 2560*1440 모니터 2개
  • Canvas의 해상도 5120*1440
  • Camera Size = 720 =1440/(2*1)

Display

  • 캔버스는 하나의 카메라에만 보일수 있다 (월드 캔버스 제외)
  • 본인이 구현해야하는것
    • 모니터 두개에 하나의 소프트웨어가 보여야한다.
    • 각각의 디스플레이는 오브젝트를 공유를 할수 있어야한다
      (실제 듀얼모니터처럼 UI오브젝트가 화면 1에서 화면 2로 옮길수 있어야함)

해결방법

  • World Canvas를 두개의 모니터를 합친 해상도로 생성해준다.
  • Camera를 Ortho로 설정하고 해상도에 맞게 Size를 조절해준다.
  • 카메라 두개를 각각 캔버스의 좌/우를 비추도록 설정한다.
  • 카메라의 Display를 1,2로 각각 설정해준다.
//추가 카메라
Camera leftCamera;
     //Display Check
 if (Display.displays.Length > 1)
 {
     // 두 번째 디스플레이 활성화
     Display.displays[1].Activate();
     // 두 번째 디스플레이의 카메라 설정
     leftCamera.targetDisplay = 1;
 }
  • Event Camera 문제
    • Canvas의 Event Camera는 하나이기때문에 한쪽 모니터에서는 입력이 받아지지않는다.
    • 위의 문제를 해결하기 위해 Mouse.Pos를 판단하여 EventCamera를 수시로 바꿔준다.
      if (Input.mousePosition.x > 0)
      {
      canvas.worldCamera = rightCamera;
      }
      else
      {
      canvas.worldCamera = leftCamera;
      }