Unity 게임을 만들 때 게임을 위한 Main Camera와 UI를 위한 Camera를 따로 두는 게 보편적이다.
그리하여 케릭터의 대화창이다 텍스트 이펙트( ex. 타격 수치 값 )등과 같이 UI Camera에 그 결과를 출력해줘야 하는 경우가 있는데 이때는 카메라 변환을 통하여 생성된 위치를 맞춰줘야 한다.
무슨 말인고 하니 Main Camera에 비춰지는 캐릭터 대화창 및 텍스트 이펙트의 좌표를 UI Camera에 맞게 변경해줘야 한다.
방법은 아래와 같다.
Main Camera나 UI Camera의 스크린 좌표는 같을 테니 Main Camera가 비추는 케릭터의 월드좌표(World Position)를 스크린 좌표(Screen Position)으로 변환 후에 그 스크린 좌표를 UI Camera 기준으로 비춰지는 월드좌표로 변환하면 된다.
{ Vector3 mainCamera_ScreenPos = Camera.main.WorldToScreenPoint(Character.transform.position); Vector3 uiCamera_WorldPos = UICamera.mainCamera.ScreenToWorldPoint(mainCamera_ScreenPos ); }