/// <summary> /// 加载UI的方式 /// </summary> private void OnUIEnterStyle(RectTransform rect, UIEnterStyle style, TweenCallback onComplete = null, float time = 1) { Vector2 endPos = rect.anchoredPosition; Vector2 startPos = Vector2.zero; switch (style) { case UIEnterStyle.Null: return; case UIEnterStyle.FromRightToLeft: float startX_frl = endPos.x + rect.rect.width; startPos = new Vector2(startX_frl, endPos.y); break; case UIEnterStyle.FromLeftToRight: float startX_flr = endPos.x - rect.rect.width; startPos = new Vector2(startX_flr, endPos.y); break; case UIEnterStyle.FromTopToBottom: float startY_ftb = endPos.y + rect.rect.height; startPos = new Vector2(endPos.x, startY_ftb); break; case UIEnterStyle.FromBottomToTop: float startY_fbt = endPos.y - rect.rect.height; startPos = new Vector2(endPos.x, startY_fbt); break; default: break; } rect.anchoredPosition = startPos; Tweener tweener = rect.DOAnchorPos(endPos, time); if (onComplete != null) { tweener.OnComplete(onComplete); } }
public T UIEnter <T>(UIEnterStyle style, bool isCache = false, bool hasKeys = false, params object[] keys) where T : UIBase { GameObject obj = ResourceManager.Instance.CreateGameObject(UI_PATH_ROOT + typeof(T).ToString(), isCache); if (obj == null) { Debug.LogWarning("加载UI界面失败!Type:" + typeof(T).ToString()); return(null); } obj.transform.SetParent(Canvas.transform); RectTransform rect = obj.GetComponent <RectTransform>(); rect.offsetMin = Vector2.zero; rect.offsetMax = Vector2.zero; rect.anchorMin = Vector2.zero; rect.anchorMax = Vector2.one; OnUIEnterStyle(rect, style); T t = obj.AddComponent <T>(); t.InitNode(t.transform); t.Init(hasKeys, keys); _uiList.Add(t); return(t); }