public BaseViewTracker OpenView <TViewType>(string PrefabName, bool bHidePrevious = true) where TViewType : BaseView { if (m_RootCanvas != null) { foreach (BaseView ViewPrefab in m_ViewPrefabs) { if (ViewPrefab.gameObject.name == PrefabName) { if (ViewPrefab is TViewType) { BaseViewTracker NewViewTracker = new BaseViewTracker(); m_ShowQueue.Enqueue(new ViewQueueEntry(ViewPrefab, NewViewTracker)); return(NewViewTracker); } else { throw new ArgumentException(String.Format("ShowView Type Mismatch.Prefab[{0}] Expected[{1}], Given[{2}]", PrefabName, typeof(TViewType).ToString(), ViewPrefab.GetType().ToString())); } } } } else { throw new NullReferenceException("Root Canvas is null."); } return(null); }
public ViewQueueEntry(BaseView InPrefabType, BaseViewTracker InTracker) { PrefabType = InPrefabType; Tracker = InTracker; }