//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, March 28, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using DG.Tweening; namespace vnxbqy.UI { public class MainWinTopGrid : MonoBehaviour { [SerializeField] bool m_AlwayShow; // 配置逻辑参考 IsOpen 函数 [SerializeField] int m_FunctionId; [SerializeField] int m_ActivityType = 0; //活动模板 [SerializeField] int m_OpenServerActivityType = 100; [SerializeField] bool m_IsAnyOpenServerActivity = false; [SerializeField] Operation m_OperationActivityType = Operation.max; [SerializeField] RectTransform m_Content; [SerializeField] CanvasGroup m_CanvasGroup; [SerializeField] IsPlayerUIeffect m_IsPlayerUIeffect; TreasureFindHostModel treasureFindHostModel { get { return ModelCenter.Instance.GetModel(); } } public RectTransform rectTransform { get { return this.transform as RectTransform; } } public bool alwayShow { get { return m_AlwayShow; } } float targetY = 0f; float targetAlpha = 0f; public void Switch(bool active, float offset, float delay) { if (m_AlwayShow) { return; } targetY = active ? 0 : (120f + offset); targetAlpha = active ? 1f : 0f; if (active) { m_Content.DOLocalMoveY(targetY, 0.3f).SetDelay(delay).SetEase(Ease.OutSine).OnComplete(PlayerUIEffect); } else { m_Content.DOLocalMoveY(targetY, 0.3f).SetDelay(delay).SetEase(Ease.InSine).OnStart(StopUIEffect); } m_CanvasGroup.DOFade(targetAlpha, 0.3f).SetDelay(delay).SetEase(active ? Ease.OutSine : Ease.InSine); m_CanvasGroup.blocksRaycasts = active; } public void SwitchImmediately(bool active, float offset) { if (m_AlwayShow) { return; } targetY = active ? 0 : (120f + offset); targetAlpha = active ? 1f : 0f; m_Content.anchoredPosition = m_Content.anchoredPosition.SetY(targetY); m_CanvasGroup.alpha = targetAlpha; m_CanvasGroup.blocksRaycasts = active; if (active) { PlayerUIEffect(); } else { StopUIEffect(); } } public bool IsOpen() { if (m_FunctionId > 0) { if (m_FunctionId == 130) { return NeedForWhiteModel.Instance.IsOpen(); } else if (m_FunctionId == 193) { return OnlineRechargeModel.Instance.IsOpen() && !OnlineRechargeModel.Instance.IsBottomButtonOpen(); } else if (m_FunctionId == 124 && FuncOpen.Instance.IsFuncOpen(m_FunctionId)) { //仙宝寻主已经全部获取 if (treasureFindHostModel.CheckTreasureFindHostFinish()) return false; return true; } return FuncOpen.Instance.IsFuncOpen(m_FunctionId); } //默认100为不判定 if (m_OpenServerActivityType != 100) { return OpenServerActivityCenter.Instance.IsActivityOpen(m_OpenServerActivityType, m_ActivityType); } if (m_IsAnyOpenServerActivity) { var functionOrder = 0; if (m_ActivityType == 4) { var actionInfo = OpenServerActivityCenter.Instance.GetNewDayActionEnterInfo(); return actionInfo.activityID != 0; } return OpenServerActivityCenter.Instance.IsAnyActivityOpen(out functionOrder, m_ActivityType); } if (m_OperationActivityType != Operation.max) { return OperationTimeHepler.Instance.SatisfyOpenCondition(m_OperationActivityType); } return false; } private void PlayerUIEffect() { if (m_IsPlayerUIeffect != null) { m_IsPlayerUIeffect.StartPlayUIEffect(); } } private void StopUIEffect() { if (m_IsPlayerUIeffect != null) { m_IsPlayerUIeffect.ObtainPlayUIEffect(); } } } }