language:unity:ngui:some_fix
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
이전 판 | |||
— | language: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 에서 일부분을 수정. | ||
+ | |||
+ | /// < | ||
+ | /// " | ||
+ | /// 일정 시간 후에 ' | ||
+ | /// </ | ||
+ | /// @todo : 폰트 텍스쳐가 재생성 될때 제대로 호출되는 방법을 찾아보자. 언젠가는 삭제되어야 한다. | ||
+ | /// FIXME: 언젠가는 삭제되어야 한다. | ||
+ | #if UNITY_EDITOR | ||
+ | void LateUpdate() | ||
+ | { | ||
+ | if(trueTypeFont != null) | ||
+ | { | ||
+ | trueTypeFont.RequestCharactersInTexture(mText, | ||
+ | RemoveFromPanel(); | ||
+ | CreatePanel(); | ||
+ | } | ||
+ | } | ||
+ | #endif | ||
+ | |||
+ | protected override void OnEnable () | ||
+ | { | ||
+ | base.OnEnable(); | ||
+ | #if UNITY_EDITOR | ||
+ | Font.textureRebuilt += OnMyFontChanged; | ||
+ | #else | ||
+ | if(!mTexRebuildAdded) | ||
+ | { | ||
+ | mTexRebuildAdded = true; | ||
+ | Font.textureRebuilt += OnFontChanged; | ||
+ | } | ||
+ | #endif | ||
+ | } | ||
+ | |||
+ | #if UNITY_EDITOR | ||
+ | void OnMyFontChanged(Font font) | ||
+ | { | ||
+ | if(trueTypeFont != null && trueTypeFont == font) | ||
+ | { | ||
+ | trueTypeFont.RequestCharactersInTexture(mText, | ||
+ | RemoveFromPanel(); | ||
+ | CreatePanel(); | ||
+ | } | ||
+ | } | ||
+ | #endif | ||
+ | </ |