본문 바로가기
Unity

3D UI

by hallojih 2021. 12. 7.

머리 위에 있는 UI가 고정적으로 떠다니는 것이라면 멀리 가면 크기가 동일하게 된다 (2D UI)

따라서 3D 상에서는 원근에 따라 크기가 다르게 보이는 3D UI를 사용하게 된다. 월드 스페이스에 배치하는  UI를 사용하게된다.

 

플레이어의 머리 위에 떠다니는 3D UI는 플레이어가 회전함에 따라 함께 회전. 부모인 플레이어가 회전하므로 자식인 UI도 함께 회전.

해결 방법 1. UI도 함께 회전해서 카메라가 바라보는 방향으로 회전시킴

 //부모의 위치 (플레이어의 위치)
        Transform parent = transform.parent;
        transform.position = parent.position + Vector3.up * (parent.GetComponent<Collider>().bounds.size.y);
        //캐릭터마다 크기가 다르므로 콜라이더의 y 크기 만큼 더해준다.

        transform.LookAt(Camera.main.transform);//메인카메라를 쳐다보도록 만들기.

 

이렇게 하면 UI가 뒤집혀서 보임. 따라서

 

 //transform.LookAt(Camera.main.transform);//메인카메라를 쳐다보도록 만들기. => 우리가 볼때 뒤집혀보이는 현상. 따라서,
        transform.rotation = Camera.main.transform.rotation; //내가 바라보는 방향이 카메라가 바라보는 방향과 같게 됨

 

 

카메라를 기준으로 한 반대방향으로 바라보도록 하면 우리가 보기에 정상적으로 보인다. 플레이어가 어떻게 회전을 하든 무조건 카메라가 회전하는 값과 똑같은 회전 값을 가지도록 한다.

=> 빌보드의 개념

UI가 항상 카메라를 바라보도록 강제하는 개념

 

 

728x90
반응형

댓글