Programming/Unity

유니티 리치 텍스트 (텍스트 안에서 마크업 태그)

변화의 물결1 2023. 12. 11. 16:54

 

 

안녕하세요.

 

 유니티에서 텍스트 혹은 버튼 오브젝트 등에 글자(Text)를 수정할 때 크기와 색상 등을 인스펙트(Inspector) 창에서 변경이 가능합니다. 다른 방법으로 텍스트 안에서도 텍스트 포맷을 조금 추가하면 유사한 기능을 사용할 수 있습니다.

 Unity와 기타 IDE 툴에서도 이런 Rich Text기능을 제공하고 있습니다. 이것을 이용하는 방법을 간단하게 확인해 보겠습니다.


 

1. Unity의 리치 텍스트

 

 UI 요소와 텍스트 메시의 텍스트에는 여러 폰트 스타일 및 크기가 사용될 수 있습니다. Text, GUIStyle 및 TextMesh 클래스에는 Unity가 텍스트 안에서 마크업 태그를 찾도록 설정하는 Rich Text 설정이 있습니다. Debug.Log 함수도 이 마크업 태그를 사용하여 코드에서 오류 보고를 향상할 수 있습니다. 태그는 눈으로 볼 수 있게 표시되지는 않지만, 텍스트에 적용할 스타일 변경을 나타냅니다.

 - Unity UserManual 2022.1

 

 

2. 지원 태그

 

- 간단하게 설명을 만들었습니다. 상세한 설명은 참고사이트 링크를 참고하시면 됩니다.

 

태  그 설  명
b 텍스트를 굵게 만듬 This is <b>TestMessage</b>.
i 텍스트를 기울임꼴로 만듬 This <i>is</i> TestMessage.
size 텍스트의 크기를 설정
(단위:pixel)
<size=20>This is </size><b>TestMessage</b>.
color 텍스트 컬러를 설정 This is <color=#ff0000ff>TestMessage</color>.
material 텍스트 메시에만 유용하고 파라미터를 통해 지정된 머티리얼이 있는 텍스트 섹션을 렌더링 <material=2>This is </material>TestMessage.
quad 텍스트 메시에만 유용하고 텍스트에 맞는 이미지를 렌더링 <quad material=1 size=20 x=0.1 y=0.1 width=0.5 height=0.5>

 

  

3. 결과 확인하기

 

 -  텍스트를 확인해 보기 위해서 Hierarchy에서 오른쪽 버튼을 눌러 UI->Legacy->Text를 눌러 Text 오브젝트를 생성합니다.

 

 

  

 - PosX, PosY, PosZ를 0으로 Width 800, Height 500, Font Size 40

 - Text에 아래와 같이 넣으면 결과를 바로 확인할 수 있습니다.

   

This is <b>TestMessage</b>.

This <i>is</i> TestMessage.

<size=20>This is </size><b>TestMessage</b>.

This is <color=#ff0000ff>TestMessage</color>.

 

 

 

 - Play(Ctrl + P)를 하지 않아도 결과를 확인할 수 있고 실행하면 Canvas 창에 나타나는 실제화면으로 확인할 수 있습니다.

 

 

 

나중에 Script 상에도 문자열로 넣어도 동일한 결과를 볼 수 있습니다.

 

     

using UnityEngine.UI;

...

private Text text1;

...

string strText = "This is <b>script code</b>.";
text1 = GameObject.Find("Canvas").transform.Find("Text1").GetComponent<Text>();
text1.text = strText;

 

 

- Text1 Object에 스크립트 파일을 넣고 실행

 

 

 

감사합니다.

 

 

<참고 사이트>

1. 리치 텍스트

https://docs.unity3d.com/kr/2022.1/Manual/StyledText.html  

 

 

반응형