사용자 도구

사이트 도구


language:unity:ngui:some_fix

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

language:unity:ngui:some_fix [2015/06/08 12:08] – 만듦 kieunslanguage:unity:ngui:some_fix [2024/04/23 22:45] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
  
 +====== UILabel과 DynamicFont ======
 +
 +UILabel의 DynamicFont 글꼴이 깨져보이는 현상.
 +디바이스에서도 계속 발생되는 현상인지는 모르겠지만 에디터에서는 깨져보이는 현상.
 +
 +  * 일단 디바이스에서는 괜찮은 듯? 확신은 없지만.
 +
 +대상버젼 : 
 +  - Unity5
 +  - NGUI 3.8.x ~ 3.9.0
 +
 +<code csharp>
 +// UILabel.cs 에서 일부분을 수정.
 +
 +/// <summary>
 +/// "Font.textureRebuilt += OnFontChanged;" 로 폰트 생성될때 텍스쳐 생성용 글자를 넘기는 함수를 등록하지만,
 +/// 일정 시간 후에 'Font.textureRebuilt' 의 이벤트 함수가 모두 삭제 되는게 아닐까??
 +/// </summary>
 +/// @todo : 폰트 텍스쳐가 재생성 될때 제대로 호출되는 방법을 찾아보자. 언젠가는 삭제되어야 한다.
 +/// FIXME: 언젠가는 삭제되어야 한다.
 +#if UNITY_EDITOR
 +void LateUpdate()
 +{
 +  if(trueTypeFont != null)
 +  {
 +    trueTypeFont.RequestCharactersInTexture(mText, mPrintedSize, mFontStyle);
 + RemoveFromPanel();
 + CreatePanel();
 +  }
 +}
 +#endif
 +
 +protected override void OnEnable ()
 +{
 +  base.OnEnable();
 +#if UNITY_EDITOR
 +  Font.textureRebuilt += OnMyFontChanged; // FIXME : remove someday
 +#else
 +  if(!mTexRebuildAdded)
 +  {
 +    mTexRebuildAdded = true;
 + Font.textureRebuilt += OnFontChanged;
 +  }
 +#endif
 +}
 +
 +#if UNITY_EDITOR
 +void OnMyFontChanged(Font font)
 +{
 +  if(trueTypeFont != null && trueTypeFont == font)
 +  {
 + trueTypeFont.RequestCharactersInTexture(mText, mPrintedSize, mFontStyle);
 + RemoveFromPanel();
 +    CreatePanel();
 +  }
 +}
 +#endif
 +</code>