유니티 UI는 매우 중요하다. 유저가 쉽게 알아볼 수 있도록 설계하는 것이 중요하다. 하지만 콘솔창에서 숫자를 백만자리까지 찍어도 숫자에 콤마가 없다. 혹은 소수점 자리가 굉장히 길게 나올 때가 있다. 그래서 유니티 Text UI
에 출력하는 숫자를 올바르게 표현하고자 자릿수 출력을 알아야한다.
먼저 기존의 Canvas
를 삭제하고 새로운 Text (Legacy)
를 만들어준다. 후 Canvas는 해상도에 맞게 조정하고 Text
UI의 포지션을 리셋시킨 후 PosY
의 값을 250으로 바꿔준다. 글씨 크기는 보기 좋게 150으로 바꾸고 Horizontal Overflow
와 Vertical Overflow
를 Overflow로 바꿔준다.
마지막으로 가운데 정렬 중간 정렬을 해준다. 두개 더 만들고 각각 가장 먼저 있던 Text UI 아래로 이쁘게 배치해준다.
FloatToString
이라는 새로운 스크립트를 만들고 상단에 using UnityEngine.UI;
를 추가한다. 스크립트의 내용은 간단하다.
public class FloatToString : MonoBehaviour
{
public Text text1;
public Text text2;
public Text text3;
// Start is called before the first frame update
void Start()
{
float a = 1.234f;
text1.text = a.ToString("F1");
text2.text = a.ToString("F2");
text3.text = a.ToString("F3");
}
// Update is called once per frame
void Update()
{
}
}
이렇게 만들고 에디터로 돌아가 스크립트를 GameManager의 컴포넌트로 존재하게 만든 후 Hierarchy창에 있는 Text를 순서대로 끼워준다.
이제 출력을 하면 소수점이 다르게 나온는 걸 알 수 있다.
코드를 바꿔 천의 자릿수 마다 쉼표가 찍히게 해주겠다.
public class FloatToString : MonoBehaviour
{
public Text text1;
public Text text2;
public Text text3;
// Start is called before the first frame update
void Start()
{
float num = 123456.987f;
text1.text = num.ToString("N0");
text2.text = num.ToString("N1");
text3.text = num.ToString("N2");
}
// Update is called once per frame
void Update()
{
}
}
이렇게 작성하고 출력을 하면 천의 자릿수 마다 쉼표가 찍히고 원하는 소수점까지 출력을 할 수 있다.