[내일배움캠프 본 캠프 76일차] CSV기반 UITEXT 적용

2026. 1. 15. 23:07본 캠프

오늘은 로컬라이징 적용 및 CSV 기반 UI텍스트 적용을 위한 여러 작업들을 진행했는데

작업하면서 기획자와 어떤 양식으로 구성해야 데이터를 적용할 수 있는지에 대해 서로 상의하면서 차츰차츰 형태를 갖추어나갔다.

 

 

처음에는 대사 시스템에 들어가는 형식의 엑셀만 있었고, 이 형식을 SO로 보관하는 Baker 툴만 있었기에

비슷한 컬럼으로 진행했다가 여러 낭패를 맛보았다.

 

 

특히 UI의 경우는 너무 많은 컬럼들로 세분화 되어있었기에 오히려 ID값만 남기고 어떤 위치에 적용할 텍스트인지만 표기해서

직접 넣는 편이 훨씬 수월했었다. 튜터님의 피드백을 통해서 UI는 이렇게 간단하게 처리를하고

분기가 나눠지는 형식의 텍스트들만 별도의 컬럼으로 나누라는 피드백을 받았다.

 

 

그래서 기획자와 상의해서, 미션은 Theme별로 시스템에서 쏘고있으니까 해당 타입을 활용해서 해당타입에 NO컬럼을 맞추고

ID는 어떤 UI에 적용할지에 대해서 구분하는 값으로 구별했다.

 

그래서 이런식으로 TMP에 스크립트를 붙여서 Role에 맞게 설정해주면 게임시스템에서 미션이 바뀔 때마다

해당 타입과 NO를 맞춰서 타이틀이면 해당 NO미션의 타이틀에 해당하는 텍스트가 나오도록 구성했다.

 

이 과정에서 생각치 못한 문제가 하나 있었는데, CSV의 Text 부분에서 기획자가 텍스트를 줄바꿈을 통해서 엑셀에 작성하면

CSV형식에서 해당 줄바꿈을 인식하지못해 TEXT자체가 ID로 잡히는 현상이 있었다.

그래서 줄바꿈이 필요한 부분에는 <\n>이나 HTML 양식인 <br>을 통해서 줄바꿈 표시를 하고 한줄로 쭉 쓰게 만들었고

해당 CSV를 베이킹할 때 줄바꿈처리를 하도록 변경했더니 정상적으로 적용됐다.

 

 

이제 자연스럽게 첫번째 대화가 끝나고 나면 미션브리핑UI가 나오고

이후 결과를 보고할 때도 성공/실패 분기에 따라 대사가 나온다.

그리고 성공/실패 분기에 따라서 각각의 패널들이 나오고 텍스트도 결과에 맞춰서 출력된다.

 

튜터님에 말에 의하면 보통 언어가 바뀌는 경우는 아예 CSV 자체를 바꿔버리는 형식으로 주로 구현한다고 한다.

Unity 내부에도 Localization용 패키지가 있는데 그걸 활용해보지 못한게 아쉬운 부분이긴 하다.

 

그래서 우리팀은 나중에 해당부분을 어떻게 적용해야 할지 고민이 된다.

 

기반은 어느정도 마련해뒀으니 나중에 양식만 바꿔서 언어변경 옵션에서 바로 적용할 수 있도록 작업을 해본 부분이

나름 보람찼다.

 

다음 기회에는 baker의 예외처리나 작성 양식등에 대해서도 좀 더 알아봐야겠다는 생각을 했다.