private static void DestroyUI(IBaseUI ui) { ui.OnHide(); if (ui.gameObject.transform.parent == Layer(UILayer.Main)) { ui.gameObject.SetActive(false); _uiCache[ui.UIType] = ui; } else { ui.OnDetach(); GameObject.Destroy(ui.gameObject); } }