赞
踩
因为这个问题,导致我花了半天时间来调,可恶之极!真相必须公布以后快!
在一个逻辑里,我需要根据新的数组将原来的显示列表重新,为了性能,我进行差异更新,把需要删除的个数删除,其它的只更新。于是问题就出在对父级的理解上。我只是调用了Destory(),但其实他不是立即执行,并将对象从显示列表(AS用惯了,就这么叫吧)移除。这导致我在计算差异集时出错,而只需要在销毁之前先将对象的父级置空就解决了问题。我只想说一句,我X!!
while (ii<ct) {
tr = transform.GetChild(ii);
tr.SetParent(null);//就是这一句,必须有。不然逻辑上不会立即将父级的子级个数更新,导致逻辑错误!
Destroy(tr.gameObject);
//GameLog.log("删除:"+ii+" ct:"+ct);
ii++;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。