示例#1
0
    protected object ShowPopWindow(Type type, object obj = null, Transform parent = null)
    {
        if (currentPop != null)
        {
            currentPop.Hide(); currentPop = null;
        }
        for (int i = 0; i < pops.Count; i++)
        {
            if (pops[i].GetType() == type)
            {
                currentPop = pops[i];
                pops[i].Show(obj);
                return(pops[i]);
            }
        }
        var t = Activator.CreateInstance(type) as HotPopWindow;

        pops.Add(t);
        currentPop = t;
        if (parent == null)
        {
            t.Initial(Parent, this, obj);
        }
        else
        {
            t.Initial(parent, this, obj);
        }
        t.ReSize();
        return(t);
    }
示例#2
0
    protected T ShowPopWindow <T>(object obj = null, Transform parent = null) where T : HotPopWindow, new()
    {
        if (currentPop != null)
        {
            currentPop.Hide();
            currentPop = null;
        }
        for (int i = 0; i < pops.Count; i++)
        {
            if (pops[i] is T)
            {
                currentPop = pops[i];
                pops[i].Show(obj);
                return(pops[i] as T);
            }
        }
        var t = new T();

        pops.Add(t);
        currentPop = t;
        if (parent == null)
        {
            t.Initial(Parent, this, obj);
        }
        else
        {
            t.Initial(parent, this, obj);
        }
        t.ReSize();
        return(t);
    }
示例#3
0
 public void HidePopWindow()
 {
     if (currentPop != null)
     {
         currentPop.Hide();
     }
     currentPop = null;
 }
示例#4
0
 public void ReleasePopWindow(HotPopWindow window)
 {
     pops.Remove(window);
     if (currentPop == window)
     {
         currentPop = null;
     }
     window.Dispose();
 }
示例#5
0
 public void ReleasePopWindow <T>()
 {
     for (int i = 0; i < pops.Count; i++)
     {
         if (pops[i] is T)
         {
             pops[i].Dispose();
             pops.RemoveAt(i);
             break;
         }
     }
     if (currentPop is T)
     {
         currentPop = null;
     }
 }
示例#6
0
 public override void Dispose()
 {
     if (pops != null)
     {
         for (int i = 0; i < pops.Count; i++)
         {
             pops[i].Dispose();
         }
     }
     pops.Clear();
     currentPop = null;
     if (Main != null)
     {
         Main.transform.SetParent(null);
         HGUIManager.GameBuffer.RecycleGameObject(Main);
     }
     ClearUI();
 }