protected GameUIComponent DisposeChild(GameObject child) { GameUIComponent ui = child.ToGameUIComponent(); childListDirty = true; if (_usePool) { if (childPool.Free(ui)) { if (ui != null) { ui.Visible = false; } else { child.SetActive(false); } Vector3 sc = child.transform.localScale; Vector3 ps = child.transform.localPosition; child.transform.SetParent(poolTransform); child.transform.localScale = sc; child.transform.localPosition = ps; return(ui); } } if (ui != null) { if (ui.Visible) { ui.OnHide(); } ui.Dispose(false); } child.transform.SetParent(null); GameObject.Destroy(child); return(ui); }