2014년 1월 18일 토요일

[Unity] Main Camera의 내용을 UI Camera에 출력하기.



 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 );
}

댓글 없음:

댓글 쓰기