| System/Realm/RealmAnimationBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Realm/RealmAnimationBehaviour.cs
@@ -17,10 +17,12 @@ [SerializeField] UIEffect m_EffectLevelUp; [SerializeField] UIEffect m_EffectBoss; [SerializeField] UIEffect m_EffectBase; [SerializeField] UIEffect m_EffectCover; [SerializeField, Header("小境界升级特效时长")] float m_NormalLevelUpEffectTime = 1.5f; [SerializeField, Header("大境界升级特效时长")] float m_SpecialLevelUpEffectTime = 4.5f; [SerializeField, Header("Boss特效时长")] float m_BossEffectTime = 2f; [SerializeField, Header("罩子消失时机"), Range(0, 2f)] float m_CoverDisappearTime = 1.0f; [SerializeField, Header("罩子切换时机")] float m_CoverChangeTime = 3.0f; Coroutine m_RotateCoroutine = null; @@ -28,10 +30,12 @@ public bool rotating { get; private set; } public bool isPlayingAnimation { get; private set; } public bool isPlayingBossEffect { get; private set; } public event Action onRotateComplete; public event Action onLevelUpComplete; public event Action onBossAppearComplete; public event Action onCoverChange; RealmModel model { get { return ModelCenter.Instance.GetModel<RealmModel>(); } } @@ -39,6 +43,7 @@ { rotating = false; isPlayingAnimation = false; isPlayingBossEffect = false; m_ContainerLine.gameObject.SetActive(false); for (int i = 0; i < m_RealmStages.Length; i++) { @@ -125,7 +130,19 @@ m_EffectLevelUp.effect = levelUpEffectId; m_EffectLevelUp.Play(); var effectTime = config.BossID != 0 ? m_SpecialLevelUpEffectTime : m_NormalLevelUpEffectTime; yield return WaitingForSecondConst.GetWaitForSeconds(effectTime); if (config.BossID != 0) { yield return WaitingForSecondConst.GetWaitForSeconds(m_CoverChangeTime); if (onCoverChange != null) { onCoverChange(); } yield return WaitingForSecondConst.GetWaitForSeconds(effectTime - m_CoverChangeTime); } else { yield return WaitingForSecondConst.GetWaitForSeconds(effectTime); } if (index != -1) { @@ -151,7 +168,7 @@ { StartBossEffectShow(); model.SetBossEffectShow(model.displayRealmLevel); yield return WaitingForSecondConst.GetWaitForSeconds(Mathf.Max(0f, 3.1f - m_BossEffectTime)); yield return WaitingForSecondConst.WaitMS3000; } isPlayingAnimation = false; @@ -191,6 +208,7 @@ IEnumerator Co_BossEffectShow() { isPlayingBossEffect = true; m_EffectBoss.Play(); Animator animator = null; if (m_EffectBoss.target != null) @@ -207,8 +225,15 @@ obj.gameObject.SetActive(false); } } yield return WaitingForSecondConst.GetWaitForSeconds(m_CoverDisappearTime); if (m_EffectCover.IsPlaying) { m_EffectCover.StopImediatly(); } yield return WaitingForSecondConst.GetWaitForSeconds(2f - m_CoverDisappearTime); yield return WaitingForSecondConst.GetWaitForSeconds(m_BossEffectTime); isPlayingBossEffect = false; if (onBossAppearComplete != null) { onBossAppearComplete(); @@ -285,6 +310,7 @@ { rotating = false; isPlayingAnimation = false; isPlayingBossEffect = false; StopAllCoroutines(); if (m_RotateCoroutine != null) { System/Realm/RealmWin.cs
@@ -36,6 +36,7 @@ int cacheRealmLevel = 0; long cacheFightPower = 0; long customUpPower = 0; bool tweenOnStart = false; const int REALM_STAGE_COUNT = 5; @@ -100,6 +101,7 @@ m_RealmAnimation.onRotateComplete += OnRotateComplete; m_RealmAnimation.onLevelUpComplete += OnLevelUpComplete; m_RealmAnimation.onBossAppearComplete += OnBossAppearComplete; m_RealmAnimation.onCoverChange += OnCoverChange; mainDateModel.customDisplayPower += CustomDisplayPower; cacheRealmLevel = PlayerDatas.Instance.baseData.realmLevel; @@ -113,16 +115,15 @@ m_RealmState = RealmState.LevelUp; HideRealmBoss(); DisplayRealmUp(); m_RealmBriefTween.Play(); var realmLevel = PlayerDatas.Instance.baseData.realmLevel; var requireLevelUp = realmLevel < model.realmMaxLevel && model.selectRealm > realmLevel; if (requireLevelUp) tweenOnStart = true; m_RealmBriefTween.SetStartState(); m_RealmLevelUpTween.SetStartState(); if (!m_RealmAnimation.isPlayingBossEffect) { m_RealmLevelUpTween.Play(); StartTween(); } } @@ -138,6 +139,7 @@ m_RealmAnimation.onLevelUpComplete -= OnLevelUpComplete; m_RealmAnimation.onBossAppearComplete -= OnBossAppearComplete; mainDateModel.customDisplayPower -= CustomDisplayPower; m_RealmAnimation.onCoverChange -= OnCoverChange; HideRealmUp(); } @@ -172,9 +174,9 @@ DisplayUnlockEquip(); DisplayCover(); if (model.SatisfyChallengeBoss(model.selectRealm - 1)) if (model.SatisfyChallengeBoss(model.displayRealmLevel)) { if (model.GetBossEffectShow(model.selectRealm - 1)) if (model.GetBossEffectShow(model.displayRealmLevel)) { DisplayEffectBoss(); } @@ -182,7 +184,7 @@ { m_RealmAnimation.StartBossEffectShow(); m_GotoBoss.gameObject.SetActive(false); model.SetBossEffectShow(model.selectRealm - 1); model.SetBossEffectShow(model.displayRealmLevel); } } } @@ -338,7 +340,20 @@ obj.gameObject.SetActive(!requireBossEffect); } } } void StartTween() { m_RealmBriefTween.Play(); var realmLevel = PlayerDatas.Instance.baseData.realmLevel; var requireLevelUp = realmLevel < model.realmMaxLevel && model.selectRealm > realmLevel; if (requireLevelUp) { m_RealmLevelUpTween.Play(); } tweenOnStart = false; } private void PlayerDataRefreshEvent(PlayerDataType dataType) @@ -362,6 +377,20 @@ customUpPower += (PlayerDatas.Instance.baseData.FightPoint - cacheFightPower); } cacheFightPower = PlayerDatas.Instance.baseData.FightPoint; } else if (dataType == PlayerDataType.LV) { m_RealmLevelUp.DisplayCondition(); if (m_RealmAnimation.isPlayingAnimation || m_RealmAnimation.rotating) { return; } if (model.SatisfyChallengeBoss(model.displayRealmLevel) && !model.GetBossEffectShow(model.displayRealmLevel)) { model.SetBossEffectShow(model.displayRealmLevel); m_RealmAnimation.StartBossEffectShow(); } } } @@ -455,6 +484,23 @@ public void OnBossAppearComplete() { m_GotoBoss.gameObject.SetActive(true); if (tweenOnStart) { StartTween(); } if (m_EffectCover.IsPlaying) { m_EffectCover.StopImediatly(); } } private void OnCoverChange() { var id = model.GetRealmCoverEffect(model.displayRealmLevel + 1); m_EffectCover.effect = id; m_EffectCover.Play(); } private bool CustomDisplayPower()