2019. 3. 27. 11:50

안녕하세요. 게임개발자 놀이터 입니다.

유니티에 TMP가 정식으로 지원되면서 TMP에는 Sprite Importer 라는 기능이 있더군요!

이모티콘을 이걸로 표현 할 수 있지 않을까 방법을 좀 찾아봤습니다.

여러 사이트를 돌아다니면서 방법을 모아왔네요

나중에 동영상으로도 올릴계획 입니다.

<TMP Sprite Importer>


Sprite Data Source 에는 json 형식의 텍스트 에셋이 들어가야한다고 합니다.
(어떤 구조인지는 제 정보 검색 능력으로는 찾질 못했습니다... 그냥 JSON이여야 한다고...)

Improt Format 방식에는 noneTexturePacker가 있는데 
여기서 TexturePacker는 외부 프로그램을 말하고있네요!
TexturePacker  <-- 링크





프로그램을 다운 받고 설치 합니다



무료버전만으로도 충분히 사용 가능합니다!!


실행 화면입니다

이제 여기에 사용할 이미지들을 넣어줍니다.

저는 Unicode Emozi 모음을 사용했습니다.


현재 아웃풋 파일 방식이 Unity로 되어있는데 이를 Json(Array)형식으로 변경해줍니다.

(이때 크기를 2의 배수 단위로 강제 고정하면 더욱 안전하게 사용 하실 수 있습니다.)
(유니티에서 파일을 읽어올때 2의 배수로 읽어오기 때문에...)


저 JSON (Array)가 TMP에서 사용하는 그 Json 방식이랑 동일 하더군요!



저는 바탕화면에 폴더를 만들어서 Json 파일과 png파일이 출력되도록했습니다.



이제 상단 Publish sprite sheet 를 출력합시다.



제대로 잘 나왔네요! 게다가 TMP가 쓰는 방식 구조도 알 수 있었습니다!

이제 다시 유니티로 돌아갑시다.


먼저 2개의 파일을 유니티에 넣어줍니다


그후 Sprite Importer 을 열어서 Json파일과 Atlas를 넣어줍니다

그후 Create Sprite Asset을 누른 후 Save Sprite Asset을 눌러줍니다!

그럼 생성된 스프라이트 데이터를 확인 할 수 있습니다.


위 파일을 TMP EXTRA SETTINGS 에 Sprite Asset에 넣어줍니다


그럼 이제 이모티콘을 입력해봅시다!

유니코드 이모티콘이라 유니티에선 지원해주지 않아, 입력해도 에디터에선 표시되지 않지만


이렇게 입력한 ( 뒤에 이모티콘이 붙어있어요! 안보일뿐..) TMP에서는

이렇게 출력되게 됩니다!

이제 원하는 대로 전부 변경 할 수 있겠네요.

감사합니다~



+ 추가



<sprite=id> 태그로도 이모티콘을 출력 할 수 있습니다. 이쪽이 더 간편해 보이네요!




읽어주셔서 감사합니다!





Posted by 시리시안