Beispiel #1
0
    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);
    }
Beispiel #2
0
 public ViewQueueEntry(BaseView InPrefabType, BaseViewTracker InTracker)
 {
     PrefabType = InPrefabType;
     Tracker    = InTracker;
 }