NGUI의 UIGrid 객체 밑에 자식 객체를 두었다가 삭제하려는 경우, PC에서는 정상적으로 삭제가 되지만 안드로이드에서는 삭제가 완전히 되지 않고 이상하게 동작하는 것을 발견했다.
아래의 코드를 보자.
foreach (Transform transChild in gridObj.transform)
{
Debug.Log("delete child >>>>>>>>>>>>>" + transChild.gameObject.name);
Destroy(transChild.gameObject);
}
루프를 돌면서 UIGrid에 붙어있는 자식을 삭제하게 되는데, 로그도 정상적으로 찍히고 PC에서는 아무 문제가 없다. 그런데 실제 안드로이드 기기에서 돌려보면 UIGrid의 자식이 완전히 삭제되지 않고 1~2개씩 남는다.
이 문제를 해결하려면 루프 밑에 다음과 같은 코드를 추가하면 된다.
gridObj.transform.DetachChildren();
출처: http://nomoreid.egloos.com/4796039
'개발 > Unity' 카테고리의 다른 글
[Unity] SendMessage는 무조건 쓰지 말아야 할까? (0) | 2016.11.03 |
---|---|
[Unity3D] 스크립트의 private 멤버를 인스펙터에 노출시키기 (0) | 2014.08.10 |
SVN으로 Unity3D 프로젝트를 관리할 때 반드시 설정해야 하는 것 (0) | 2013.11.28 |
[Unity3D] NGUI와 BMFont를 이용한 데미지(숫자) 폰트 만들기 (1) | 2013.11.25 |