본문 바로가기

Programming/Unity

NGUI HP Bar 만들기

HP나 MP나 그냥 스프라이트를 만든다음 해도 되지만 NGUI로 편하게 만들 수 있기 때문에 NGUI를 이용하였다.

우선 필요한 리소스를 NGUI Atlas로 만든다음 NGUI Sprite 오브젝트로 만든다.


UI를 보이기 위해 2D UI를 추가하고



Camera 밑에 UI들을 붙일 Panel을 추가해준다.


Panel 내부에 NGUI Sprite로 Atlas로 만들어둔 리소스들을 추가한다.



HP나 MP Bar같은 것들은 피가 다는 것을 보여주기 위해 뒷 배경을 보여주며 닳아가는 효과를 줄 수 있고

아에 배경없이 피막대기가 까이는 것을 보여줄 수 있다.

나는 뒷배경을 주고 피가 까이는것을 보여주도록 만들기 위해 Foreground와 Background를 Sprite 두개를 만들었다.

Foreground에서는 피를 표시 할 붉은 막대기 Sprite를 만들었고 Background 역할을 할 Health Bar Sprite를 만들었다.

Slot은 검은 바탕이 보이게 하기 위해 넣은 Sprite다




Health Bar 게임오브젝트는 HP Bar의 기준이 될 부모역할이기에 이것의 자식으로 Foreground와 Slot을 넣어준다.

그리고 Health Bar에 UI Slider라는 NGUI 스크립트를 추가시켜준다.



Foreground와 Background 그리고 기준이 될 Transform 오브젝트 들을 넣고 채워지는 방향을 설정한다.

이 스크립트의 Value 값을 조정해 Foreground의 채움 정도를 변경할 수 있다.




보통 캐릭터 클래스나 매니저 클래스에서 피를 관리하기 때문에

    public  UISlider        HPbar                   = null;
    public  UISlider        MPbar                   = null;

식으로 인자를 받을 수 있도록 해놓고 에디터에서 해당 오브젝트를 넣어준다.



코드상에서 피의 변동을 보여줄 수 있도록 UiSlider.value = 현재피 / 최대피 로 계산하여 value 값을 전달하도록 한다.

// HPMP바 조정부분
        float fHp = (float)CurrentHP / (float)playerHP;
        float fMP = (float)CurrentMP / (float)playerMP;
        HPbar.value = fHp;
        MPbar.value = fMP; 

그럼 실시간으로 캐릭터 피에 관해 변동되는 Bar를 만들어진다.


'Programming > Unity' 카테고리의 다른 글

Unity C# Zoom in out  (0) 2015.08.03
NGUI HUDText 사용  (2) 2015.07.30
몬스터 FSM 구현  (3) 2015.07.30
가상 조이스틱 구현  (1) 2015.07.30
유니티(unity) 디버깅 하기  (0) 2014.01.28