개발일기

WorldSpace UI 본문

Unity ToyProject/RPG

WorldSpace UI

김조성준 2023. 7. 29. 20:09

1. Screen Space - Overlay


UI가 화면에서 Scene 위에 그려집니다. 스크린의 크기가 조절되거나 해상도가 변하면 Canvas는 여기에 맞춰 자동으로 크기가 변경됩니다. 즉, 다음과 같은 UI 요소를 나타내는 RenderMode입니다.

 


 

 

2. World Space


Canvas가 Scene 위에 있는 다른 오브젝트처럼 동작합니다. UI 요소는 3D 배치에 기반하여 Scene의 다른 오브젝트의 앞 또는 뒤에 Rendering 됩니다. 이 방식은 월드의 일부를 이루도록 의도된 UI에 유용합니다. 

World Space HPBar

 


 

3. 구현


 

1. Canvas의 RenderMode를 World Space로 변경하고 Slider의 크기를 조정해서 위치시켜야 합니다.

 

2. HPBar는 부착된 오브젝트(플레이어 or 몬스터)의 위치를 따라가야 하기 때문에 Update문에서 위치를 변경시킵니다.

3. HPBar의 rotation은 카메라의 rotation과 동일해야 합니다. 그렇지 않으면 카메라가 바라보는 방향에 따라 HPBar가 빙글빙글 돌기 때문입니다. (LookAt을 사용하면 카메라를 바라보기에 HPBar가 거꾸로 표시됩니다)

 void Update()
{
        Transform parent = transform.parent;
        transform.position = parent.position + Vector3.up * (parent.GetComponent<Collider>().bounds.size.y);
        transform.rotation = Camera.main.transform.rotation;
 }

 

 

'Unity ToyProject > RPG' 카테고리의 다른 글

SceneLoaderManager  (0) 2023.07.31
DataManager  (0) 2023.07.30
PoolManager와 ResourceManager  (0) 2023.07.28
SoundManager  (0) 2023.07.27
QuaterView Camera  (0) 2023.07.26