public void DespawnUI(UINames uiNames, float destroyTime = 10.0f) { TimeUtil timeUtil = Singleton.GetInstance("TimeUtil") as TimeUtil; UIBase ui = UIManager.Instance.GetUI(uiNames); timeUtil.AddTimeCountDown(destroyTime, () => { if (null == ui || null == ui.gameObject || ui.gameObject.activeSelf) { return; } m_UIMap.Remove(ui.selfName); GameObject.Destroy(ui.gameObject); }); ui.gameObject.SetActive(false); if (!m_UIMap.ContainsKey(ui.selfName)) { m_UIMap.Add(ui.selfName, ui); } }