2013. 12. 11. 17:47ㆍ프로그래밍/Unity
ERROR :
MissingReferenceException: The object of type 'UILabel' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UIWidget.MarkAsChanged () (at Assets/NGUI/Scripts/Internal/UIWidget.cs:522)
UILabel.MarkAsChanged () (at Assets/NGUI/Scripts/UI/UILabel.cs:773)
========================================
NGUI를 잘 사용하고 있었는데, 갑자기 UILABEL관련해서
위와같은 형식의 에러 코드가 등장했다.
뭔가 스크립트가 missing난 것은 아닌지 널 참조하는 것은 어느 부분일지 예측해보고 찾아보려했으나 아무리 찾아봐도 찾을 수가 없었다.
구글링해봐도 여기에 대한 정보는 거의 찾아볼 수 없었다.
그래도 플레이상에 문제는 없어서 당장 급한 문제는 아니라고 생각했는데, 이때문에 가끔씩 글씨가 깨지거나 라벨의 텍스트가 나타나지 않는 현상이 발생했다.
거의 포기하고 있었는데 , 위 에러표기에서 하나씩 찾아가보면 MarkAsChanged() 가 문제라는 것을 알 수 있었다.
그래서 그 라인을 찾아가보니
이런 내용의 코드가 나왔다.
========================================
public virtual void MarkAsChanged ()
{
mChanged = true;
#if UNITY_EDITOR
UnityEditor.EditorUtility.SetDirty(this);
#endif
========================================
바로 저부분이 문제....
저부분에서 미싱이 나타나는 듯...
========================================
public virtual void MarkAsChanged ()
{
mChanged = true;
#if UNITY_EDITOR
if(this != null){
UnityEditor.EditorUtility.SetDirty(this);
}
#endif
========================================
이렇게 고쳐주니 에러가 안난다.
NGUI 스크립트 자체를 건드리지 않고 해결하는 방법은 없는듯...
NGUI에서 버전업할때 고쳐주기를 희망해본다.
//현재 NGUI 새버전에선 고쳐진 버그...
'프로그래밍 > Unity' 카테고리의 다른 글
Ngui label에 색상 적용하기 (0) | 2014.07.02 |
---|---|
Random.Range() 범위 (0) | 2014.06.27 |
모바일 화면잠금을 막는 방법 (0) | 2014.06.03 |
유니티에서 페이스북 POST()할때 세부기능 (0) | 2014.05.21 |
유니티 쉐이더의 구조 (0) | 2013.11.14 |