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






+ Recent posts