private void ShowUIAsync_Tips(int uiid, Action <UIBase, int> callback = null, params object[] argv) { ResMgr.Log(Tag, "ShowUIAsync", "==>" + uiid); UITips ub = (UITips)_ins.m_uicache[uiid]; if (ub == null) { Action <GameObject> cb = (go) => { if (m_uiRoot == null) { Debug.Log("muiRoot is null"); } go.transform.SetParent(m_uiRoot.transform, false); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; ub = go.GetComponent <UITips>(); ub.argv = argv; ub.OnShowTips(); _ins.m_uicache[uiid] = ub; if (callback != null) { callback(ub, uiid); } }; LoadUIAsync(uiid, cb); } else { ub.argv = argv; ub.gameObject.SetActive(true); ub.OnShowTips(); if (ub.IsNeedMask) { if (!m_bgMask.gameObject.activeInHierarchy) { m_bgMask.Show(); } m_bgMask.transform.SetSiblingIndex(-2); } ub.transform.SetAsLastSibling(); if (callback != null) { callback(ub, uiid); } } }