블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2318)N
Unity3D (567)N
Programming (471)
Unreal (4)
Gamebryo (56)
Tip & Tech (183)
협업 (34)
3DS Max (3)
Game (12)
Utility (116)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (38)
Android (13)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (7)
Total1,339,177
Today190
Yesterday214
Statistics Graph

달력

« » 2019.11
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

공지사항

태그목록

[참조 글 및 참조파일]

Link :http://forum.unity3d.com/threads/165254-Unity-4-dynamic-font-support-for-NGUI 

File : 

NGUI_277c_DynamicFonts_and_Readme.zip


※ 파일명과 readme에는 NGUI 2.7.7이라고 돼 있지만 정황상 NGUI 2.2.7을 오표기 한 것 같다.


[NGUI 2.3.4 대응되는 수정 파일]

File : 

NGUI 2.3.4_DynamicFont_Source.zip



[사용기]

※ 현재 사용하려니 NGUI 2.3.4 버전이다. 위의 파일과 UIFont.cs가 좀 달라서 직접 수정해야 했다.


1) NGUI 2.3.4 버전에 맞춘다.


2) 위의 파일(NGUI 2.3.4_DynamicFont_Source.zip)을 받아서 풀어보면, UIFont.cs, UIFontInspector.cs 두 파일이 있다.

    각각 해당위치에 덮어씌우자.

   (주의: 덮어씌우면 기존 폰트 프리팹의 UIFont 스크립트가 missing이 될 수 있다. 바뀐 UIFont를 다시 넣어주면 정상 작동한다.)


3) 원하는 TTF 폰트 파일을 프로젝트에 올린다.(테스트용으로 Windows\Fonts\에 있는 '맑은고딕'을 사용했음.)

    올리면 아래와같이 자동으로 다이나믹 폰트로 생성되면서 Material과 텍스쳐가 생성된다.

    인스펙터 창에서는 폰트 사이즈 등을 조절할 수 있다.



3) Empty GameObject를 하나 생성한다.



4) 이름을 원하는대로 바꾼다.(임의로 MyDynamicFont로 바꿈)



5) UIFont 스크립트를 추가한다.



6) Font Type을 Dynamic으로 바꾸고,

    6-1) Font : 원하는 폰트(임의로 MALGUN 넣음)를 넣는다.

    6-2) Material : MALGUN 아래 있는 Material(스샷에서는 Font Material)을 드래그해서 넣는다.

          ※ 위 참조 데이터의 readme에서는 Material을 새로 만드는 데, 폰트 아래 있는걸 사용해도 별 차이가 없어서 그냥 쓰는걸로 설명함.. 왜 새로 만드는 지 모르겠음. 차후 문제가 생긴다면 수정해야 될 듯.

    6-3) Size : 3)에서 본 Size(스샷에서는 16)를 넣어준다.(이 부분은 좀 더 확인을 해 봐야겠다)

          ※ 여기서의 사이즈는 폰트 사이즈와 매칭이 돼야 Height가 제대로 맞는 것 같다. 폰트 사이즈를 키우려면 3)의 사이즈부터 수정 후 다시 매칭 시키자.



7) 만든 MyDynamicFont를 Prefab으로 만들자.(폰트 만들기는 완료)



8) 'NGUI-Create a Widget'을 눌러서 Widget Tool을 열고, Font 란에 7)에서 만든 MyDynamicFont Prefab을 넣는다.



9) Label을 하나 만든다.(Add To)

    제대로 MyDynamicFont를 써서 'New Label'이 뜬 걸 볼 수 있다.



10) 테스트로 한글/영어/한자/숫자/특수문자 등을 맘대로 넣어봤다. 잘된다.



11) 추가로.. 이제껏 쓴 글이 텍스쳐에 찍혀있는 걸 볼 수 있다.

     글자수가 늘어나서 텍스쳐를 다 채울정도가 되면 텍스쳐 사이즈가 자동으로 늘어난다.




P.s. Dynamic Font가 BM Font보다 Draw Call이 높다고 들었는데..

       잠시 테스트 해봐서는 폰트 하나당 Draw Call이 1이다(BMF랑 같음).

       어떤 경우에 늘어나는 지 모르겠다.(아시는 분 가르쳐 주세요..=_=;)

Posted by blueasa

댓글을 달아 주세요

  1. 2013.03.15 12:43 hn  댓글주소  수정/삭제  댓글쓰기

    NGUI 무료버전에서는 안되는건가요...? 무료버전은 버전이 1.2인가..그렇던데요..ㄱㅠ

    • 2013.03.15 13:40 신고 blueasa  댓글주소  수정/삭제

      제가 처음 본 샘플도 2.2.7 버전에 맞는거였는데 2.3.4에서도 안돌아가서 고쳤습니다.
      1.2 버전이라면 그땐 유니티가 다이나믹폰트 자체를 지원안하던 시절이라(유니티 4부터 다이나믹 폰트 지원합니다) 제대로 안 될 가능성이 높을 것 같습니다.
      가능하면 NGUI 유료버전을 사용하시는 게 나을 것 같아요. (현재 95달러죠?) 값어치는 하는 에셋이에요. :)

  2. 2013.03.22 11:40 오쭐깡  댓글주소  수정/삭제  댓글쓰기

    음 왜 마테리얼 새로 만들어서 사용하는지 해보니깐 알겟더군요.
    클리핑 들어갈때 기본 폰트 마테리얼은 쉐이더가 text쉐이더 입니다.
    이럴경우 ngui에서 사용하는 uigrid같은 가로 새로 스크롤 되는 아이템들을 넣은 창 같은경우에
    글씨가 화면을 벚어나게 됩니다.
    그래서 다이나믹폰트용 쉐이더를 따로 만들어서 하는것같네요 .
    저같은경우에 기본 퐅느에서 마테리얼 사용해서 하면 클리핑이 글자가 안되고.
    다이나믹 폰트용 쉐이더를 사용하면 클리핑이 되더라고요

    • 2013.03.22 12:22 신고 blueasa  댓글주소  수정/삭제

      다이나믹 폰트 테스트한다고 되는 지, 테스트만 해봐서 왜 새로 만드는 지 몰랐었는데, 좋은 정보 공유해 주셔서 감사합니다!
      좋은 하루 되세요~ :)

  3. 2013.04.12 18:40  댓글주소  수정/삭제  댓글쓰기

    그냥 라벨은 잘 되는데요 인풋은 생성을 못하네요~ 혹시 인풋쪽은 안되는 건가요?

    • 2013.04.15 12:12 신고 blueasa  댓글주소  수정/삭제

      음.. 테스트를 해봐야 겠는데요..
      직접 입력받은 걸 출력하려니 안되는 건가요?
      어떤식으로 해보신건지 알려주시면 테스트 하는데 도움이 될 것 같습니다.

  4. 2013.04.15 18:52  댓글주소  수정/삭제  댓글쓰기

    제가 착각을 했네요 Input 위젯이 생성 안되길래 질문드렸는데 아틀라스를 지정을 안해줘서 그런거였네요
    답변 감사드립니다.^^

    • 2013.04.16 14:48 신고 blueasa  댓글주소  수정/삭제

      아니에요~
      제가 요즘 PT때문에 바빠서 늦게 답변 드려서 죄송합니다.
      잘 해결 되셨다니 다행이네요.
      좋은 하루 되시길 바래요. :)