카테고리 없음

유니티 - 오브젝트에 텍스트 달기

bugmin 2024. 7. 2. 14:25

큐브 위에 텍스트가 표시되도록 해보자

 

그러기 위해선 해당 큐브에 Text - TMP를 달아주면 된다.

 

TextMeshPro가 안깔려있으면 패키지매니저서 검색해 깔면 되고 3D 오브젝트 - Text(TMP) 를 자녀로 생성하면 된다.

UI가 아니라 3D Object임을 주의하자

 

 

큐브 사이즈와 맞게 사이즈를 설정해도 기본적으론 텍스트가 세워져있기 때문에

 

로테이션을 수정하여 텍스트를 눕혔고

 

또한 로테이션을 수정해도 글씨가 아래에 있기에 Text 위치를 올리던 큐브를 내리던 적절한 방법을 써야한다.

 

큐브의 위치를 내려 텍스트가 위로 올라오게 했다만..

 

 

슬프게도 글자가 좀 깨져보인다..

 

 이는 Z-Fighting 으로 Z 버퍼 관련 문제로 큐브의 상단과 텍스트가 똑같은 공간을 차지하려니 발생하는 문제이다.

 

고로 엔진이 렌더링 시에 무엇을 우선 시 해야 할 지를 몰라 저러한 상태가 되는 것이다.

 

간단하게는 텍스트의 Y 위치 값을 살짝 올리는 것이고 

 

2번째 방법은 쉐이더 내용 변경이다.

 

 

텍스트의 머테리얼 부분의 쉐이더를 변경할 건데 

쉐이더를 TMP - Distance Field Overlay 로 변경해주기만 하면 된다.

 

 

의도대로 텍스트가 잘 나오는 모습이다.

 

다만 이렇게하면 텍스트가 도형의 중간에 있던 어디에 있던 텍스트가 표시되는 문제가 있긴하다.