Ad Block 한번만 꺼주시면 안될까요..?
게임 개발/유니티 에셋

유니티에서 수학 식을 작성하는 방법. -TEXDraw-

UniCoti(유니코티) 2023. 10. 20.

유니티에서 수학 식을 작성해야 할 일은 거의 없지만,
나는 개인적으로 수학을 좋아해서 수학 문제를 내는 게임이라면
활용할 수 있을 것 같아 글을 남겨본다.
 
먼저, 이 글에서는 에셋을 소개한다.
사실상 유니티만으로 수식을 완벽히 표현할 수는 없었다.
Github나 다른 패키지의 도움이 있어야만 다양한 수식을 표현할 수 있다.
 
때문에 나는 에셋을 사용했고, 경제력에 따라 조금 비쌀 수도 있다고 생각하니 알아서 잘 생각해 보자.
하지만 내가 써본 경험으로는 목적에 맞는 기능은 모두 잘 수행한다.
따라서 "나쁜 에셋은 아니다"라고 말하고 싶다.
 

(링크를 타고 들어가 구매할 수 있다. 클릭 가능)


1. 설치

앞에서 패키지라는 이야기를 했는데, 항상 그렇듯 에셋을 설치하려면
[Window] -> [Package Manager]로 들어가서 Package Manager 창을 연 다음
My Assets 탭으로 바꿔 필요한 에셋을 클릭하여 선택 후 설치하면 된다.
 

이렇게 창을 열어줄 수 있고,
 

이렇게 탭을 변경해야 에셋스토어의 에셋이 보이게 된다.
 

그럼 TEXDraw 에셋을 찾아서, 다운로드 후 Import 해주면 된다.
 

그럼 Plugins라는 새로운 폴더가 생기고 그 안에 TEXDraw가 담겨있을 것이다.
(이것으로 설치는 끝)


2. 사용하는 방법

사용하기 전에, 감을 익히고 싶다면 몇 가지 예제를 볼 수 있다.
 

[TEXDraw] -> [Sample] -> [Scenes] 폴더로 들어가 주면 여러 예제를 볼 수 있다.
여기서 Scene 탭으로 가서 UI들을 클릭하며 어떻게 이러한 수식들을 표현했는지 관찰하자.


이제 본격적인 사용법을 소개하겠다.
먼저, TEXDraw 에셋은 기본적으로 UI의 형태로 존재하도록 유도되었다. 상기하자.
 

기본적으로, hierarchy 창에서 빈 공간에 우클릭을 하고
[UI] -> [TEXDraw]를 클릭해서 만들어줄 수 있다.
 

TEXDraw는 UI이기 때문에 자동적으로 Canvas를 부모로 생성된 걸 볼 수 있다.
 

처음 생성되면 텍스트로는 "TEXDraw"가 기본값으로 들어가 있다.
 

이게 컴포넌트의 모습이다.
가장 기본적으로 Text를 적어줄 수 있다.
 
마찬가지로 색 변화, 머티리얼 적용이 가능하고,
Overflow는 오브젝트의 범위와 렌더링의 가능여부를 바꾼다.
여기서 Text를 바꿔주면 수식이 입력되는 형식이다.
 

가장 대표적인 예시로, 자연상수 e를 구하는 공식을 써보자.
 

이걸 텍스트로 나타내는 문자열은 위와 같다.

\lim_{a \to b} (a가 b로 계속해서 가까워질때) 극한의 기호를 나타낸다. (lim)
a \to b (a -> b) 화살표를 나타낸다.
\frac {a} {b} (b분의 a, a/b) 분수를 나타낸다. \frac{a}{b} 는 b분의 a이다.
a_{b} 기호는 어떠한 수나 연산 "아래에" 오게 한다.
a^{b} (a의 b 제곱, a의 b승) 기호는 n승 역할을 한다. 시그마 같은 경우는 "위에" 오게 한다.

그리고 하나하나의 기능을 표로 정리하면 위와 같다.
그렇다면 이걸 다 외워야 할까? 물론 아니다.
 
유료 에셋답게 같이 주는 매뉴얼 파일에서 이름과 사용법을 다 제공해 준다.
그때그때 찾아서 쓰면 되는 방식이다. 
 

또한 [Tools] -> [TEXDraw] -> [Show Preference]를 누르면 Inspector로 넘어가는데,
 

여기서 원하는 기호를 선택해서 Character 탭으로 넘어가 이름을 보거나 (조금의 문제가 있음)
아까 말한 대로 매뉴얼에서 찾아보면 된다.
 

28p까지 있는데 모두 같은 내용에 기호만 다르니
그때그때 확인해서 사용하면 된다. (저작권 문제로 한 페이지만 보여줌)


여기까지 TEXDraw 에셋에 대해서 소개해봤다.
나는 개인적으로 필요하다면 사야 하는 에셋 정도로 평가하고 싶다.
가성비가 조금 안 좋은 건 인정하긴 한데, 이거 아니면 해결할 방법이 없는 것 같다.
 
코드로 문제를 내고 싶다면, 배열에 문자열을 담아두고
GetComponent로 가져와서 .text를 바꿔주면 된다. (문자열 타입)
 
수학식을 적어야 할 일이 필요하다면 한 번쯤 사두는 것도 나쁘지 않을 듯하다.


이상으로 도움이 되었길 바라며,
 
끝.

 

+)

이 글은 제가 실제로 사용해 본 제품에 대한 솔직한 이야기입니다. 저는 이 제품을 유니티로부터 지원받아 이 글을 작성하게 되었고 링크를 통해 구매하시는 경우, 저에게는 소정의 커미션이 지급됩니다. 하지만, 이로 인해 저의 평가가 편향되지 않았음을 명확히 말씀드리고 싶습니다. 돈도 물론 중요하지만 진실한 글임을 인정받을 때 돈도 따라온다고 생각하기 때문입니다. 이 글의 목적은 전적으로 여러분들의 고민을 돕는 것이며 "광고"로만 보지 않아 주셨으면 합니다. 감사합니다.

(커미션 진짜 얼마 안 됩니다... ㅠㅠ)

댓글

💲 추천 글