public static void UnregisterSafeAreaComponent(CanvasSafeArea safeArea)
 {
     if (safeArea != null)
     {
         var index = s_safeAreasInScene.IndexOf(safeArea);
         if (index >= 0)
         {
             s_safeAreasInScene.RemoveAt(index);
         }
     }
 }
        public void Show(Toast toast, Canvas canvasHierarchy, System.Func <Toast, ToastAnimator, bool> onToastComplete = null)
        {
            Transform targetTransform = null;

            if (canvasHierarchy != null)
            {
                CanvasSafeArea safeArea = canvasHierarchy.GetComponent <CanvasSafeArea>();
                targetTransform = safeArea != null && safeArea.Content != null ? safeArea.Content : canvasHierarchy.transform;
            }

            Show(toast, targetTransform as RectTransform, onToastComplete);
        }
        public static void RegisterSafeAreaComponent(CanvasSafeArea safeArea)
        {
            if (safeArea != null)
            {
                if (!s_safeAreasInScene.Contains(safeArea))
                {
                    s_safeAreasInScene.Add(safeArea);

                    if (s_safeAreasInScene.Count == 1)
                    {
                        LoadSimFromEditorPrefs();
                    }
                }
            }
        }
示例#4
0
        protected void StartQueue()
        {
            if (m_ToastQueue.Count <= 0 || m_CurrentToast != null)
            {
                return;
            }

            if (m_ToastQueue.Count > 0)
            {
                KeyValuePair <Toast, Canvas> pair = m_ToastQueue.Dequeue();
                m_CurrentToast = pair.Key;

                Transform parent = null;
                if (pair.Value != null)
                {
                    CanvasSafeArea safeArea = pair.Value.GetComponent <CanvasSafeArea>();
                    parent = safeArea != null && safeArea.Content != null ? safeArea.Content : pair.Value.transform;
                }
                if (parent == null)
                {
                    parent = DialogManager.rectTransform;
                }

                var cacheKey        = "";
                var assetPath       = m_CurrentToast != null ? m_CurrentToast.assetPath : "";
                var currentAnimator = m_CurrentToast is Snackbar?
                                      InstantiateSnackbarAnimator(assetPath, out cacheKey, parent) :
                                          InstantiateToastAnimator(assetPath, out cacheKey, parent);

                if (currentAnimator != null)
                {
                    //Dont cache custom toasts
                    if (m_CurrentToast != null && m_CurrentToast.IsCustomToast())
                    {
                        _AnimatorsCache.Remove(cacheKey);
                    }

                    currentAnimator.Show(pair.Key, parent as RectTransform, OnToastCompleted);
                }
                else
                {
                    m_CurrentToast = null;
                }
            }
        }
示例#5
0
        public virtual void Build(Canvas parentCanvas = null)
        {
            /*Transform parentTransform = null;
             * //Find RootCanvas
             * if (parentCanvas == null || parentCanvas.transform.root == this.transform)
             * {
             *  parentCanvas = FindObjectOfType<Canvas>();
             *  if (parentCanvas != null && parentCanvas.transform.root == this.transform)
             *  {
             *      parentCanvas = null;
             *      var allCanvas = FindObjectsOfType<Canvas>();
             *      foreach (var canvasComponent in allCanvas)
             *      {
             *          if (canvasComponent != null && canvasComponent.transform.root != this.transform)
             *          {
             *              parentCanvas = canvasComponent;
             *              break;
             *          }
             *      }
             *  }
             * }
             *
             * //Set Transform
             * if (parentCanvas != null)
             * {
             *  parentCanvas = parentCanvas.transform.GetRootCanvas();
             *  CanvasSafeArea safeArea = parentCanvas.GetComponent<CanvasSafeArea>();
             *  parentTransform = safeArea != null && safeArea.Content != null ? safeArea.Content : parentCanvas.transform;
             * }
             *
             * Build(parentTransform);*/

            //Set Transform
            Transform parentTransform = null;

            if (parentCanvas != null)
            {
                CanvasSafeArea safeArea = parentCanvas.GetComponent <CanvasSafeArea>();
                parentTransform = safeArea != null && safeArea.Content != null ? safeArea.Content : parentCanvas.transform;
            }

            Build(parentTransform);
        }