/// <summary> /// 用Prefab创建一个Widget /// </summary> public TezBaseWidget createWidget(TezBaseWidget prefab, RectTransform parent, TezWidgetLife life) { TezBaseWidget widget = null; switch (life) { case TezWidgetLife.Normal: widget = Instantiate(prefab, parent, false); break; case TezWidgetLife.TypeOnly: var type = prefab.GetType(); if (m_WidgetWithType.TryGetValue(type, out widget)) { widget.reset(); return(widget); } else { widget = Instantiate(prefab, parent, false); m_WidgetWithType.Add(type, widget); } break; default: break; } widget.life = life; return(widget); }
private Window createWindow <Window>(Window prefab , string name , TezLayer layer , TezWidgetLife life) where Window : TezWindow, ITezSinglePrefab { TezWindow window = null; switch (life) { case TezWidgetLife.Normal: window = Instantiate(prefab, layer.transform, false); break; case TezWidgetLife.TypeOnly: TezBaseWidget widget = null; var type = typeof(Window); if (m_WidgetWithType.TryGetValue(type, out widget)) { widget.reset(); return((Window)widget); } else { window = Instantiate(prefab, layer.transform, false); m_WidgetWithType.Add(type, window); } break; default: break; } int id = this.giveID(); window.windowID = id; window.windowName = name; window.layer = layer; window.life = life; m_WindowList[id] = window; return((Window)window); }
public void removeTypeOnlyWidget(TezBaseWidget widget) { m_WidgetWithType.Remove(widget.GetType()); }