본문 바로가기

Programming/Unity

NGUI HUDText 사용

HUDText라는 NGUI를 사용한 애셋이 있다 본래 HUDText는 Label을 이용해 만들수도 있지만 해당 애셋을 사용하면 편하게 데미지 라던가 대화를 띄울 수 있기 때문에 이렇게 사용하게 되었다.


HUDText 애셋을 사용하기 위해서는 NGUI가 꼭 Import되어있어야 한다.

우선 NGUI UI Root 의 카메라 밑에 자식으로 HUD를 사용할 Panel을 만들어준다.



만들어진 HUD Panel을 편의상 HUDText 튜토리얼에서 말한것 처럼 HUDRoot라 하겠다.

HUDRoot에 자식으로 빈 오브젝트를 만든다음 HUDText 애셋에 있는 HUD Text 스크립트를 넣는다.

그리고 그 빈 오브젝트 이름을 HUDText라 이름진다음 프리팹으로 만들어 보관하고 하이어라키에 있는

오브젝트는 삭제한다.


이제 HUDText를 띄울 스크립트에서 Public GameObject로 HUDRoot와 HUDText Prefab을 받는다.

// 사전 작업
        // HUDText prefab을 HUDRoot에 자식으로 추가한다.
        GameObject Temp = NGUITools.AddChild(hudroot, HUDText_prefab);
        // 새로 추가한 HUDText에 이름을 붙인다.
        Temp.name = "Player_Text";
        // HUDText 변수에 HUDRoot에 붙인 자식 오브젝트를 넣는다.
        playerdmgtext = Temp.GetComponentInChildren<HUDText>();
        // 지속적으로 타겟위에 따라다기기 위해 Target을 플레이어 오브젝트 트랜스폼값을 넣는다.
        Temp.AddComponent<UIFollowTarget>().target = playerObj.transform;
        //Temp.GetComponent<UIFollowTarget>().top_level = 1;

// 사용 예
        // _Text는 Object형식으로 int 나 float 도 그대로 넣을 수 있다. 0.0f는 지속시간으로 늘리면 더 오래 있게 해준다.
        playerdmgtext.Add(_Text, _Color, 0.0f);

top_level은 임의로 몬스터 머리위에 띄우기 위해서 추가한 코드므로 오리지날 HUDText에는 없다.

이런식으로 몬스터도 같이 작업해준다면 아래 스크린샷 처럼 데미지를 띄울 수 있다.



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

NGUI 사용 흐르는 문자열 만들기  (2) 2017.03.27
Unity C# Zoom in out  (0) 2015.08.03
NGUI HP Bar 만들기  (0) 2015.07.30
몬스터 FSM 구현  (3) 2015.07.30
가상 조이스틱 구현  (1) 2015.07.30