Programming/Unity
NGUI HUDText 사용
사기꾼프로드
2015. 7. 30. 20:22
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에는 없다.
이런식으로 몬스터도 같이 작업해준다면 아래 스크린샷 처럼 데미지를 띄울 수 있다.