Beispiel #1
0
        public GameObject Show(string name, ViewData data = null)
        {
            NamedView namedView = null;

            if (namedViewInstances.ContainsKey(name))
            {
                var instance = namedViewInstances[name];
                instance.Setup(data);
                namedView = instance;
            }
            else
            {
                var prefab = namedViewPrefabs.GetPrefab(name);
                if (prefab != null)
                {
                    GameObject instance = GameObject.Instantiate <GameObject>(prefab);
                    namedView = instance.GetComponentInChildren <NamedView>();
                    if (namedView != null)
                    {
                        namedViewInstances[name] = namedView;
                        instance.transform.SetParent(GetCanvasTransform(namedView.CanvasType), false);
                        if (data != null && data.ViewDepth.HasValue)
                        {
                            namedView.SetViewDepth(data.ViewDepth.Value);
                        }
                        SortByDepth(namedView.CanvasType);
                        namedView.AnimIn();
                        namedView.Setup(data);
                    }
                    else
                    {
                        throw new UnityException($"Not found NamedView on view => {name}");
                    }
                }
                else
                {
                    throw new UnityException($"Prefab for view name => {name} not founded");
                }
            }
            return(namedView?.gameObject ?? null);
        }
Beispiel #2
0
 public bool Remove(string name, float delay = 0.0f)
 {
     if (namedViewInstances.ContainsKey(name))
     {
         NamedView view = namedViewInstances[name];
         namedViewInstances.Remove(name);
         if (view && view.gameObject)
         {
             if (Mathf.Approximately(delay, 0.0f))
             {
                 view.OnViewRemove();
                 Destroy(view.gameObject);
             }
             else
             {
                 StartCoroutine(RemoveImpl(view, delay));
             }
             return(true);
         }
     }
     return(false);
 }