| | |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using Cysharp.Threading.Tasks; |
| | | using DG.Tweening; |
| | | using UnityEngine.UI; |
| | | using UnityEngine; |
| | |
| | | }); |
| | | battleField.battleTweenMgr.OnPlayTween(tween1); |
| | | } |
| | | |
| | | public async UniTask PlayMotionAsync(BattleField battleField, bool isRed, TeamHero teamHero, SkillConfig skillConfig) |
| | | { |
| | | if (teamHero == null || skillConfig == null) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (skillConfig.FuncType != 2) |
| | | return; |
| | | |
| | | KillAllTweens(); |
| | | |
| | | imgIcon.sprite = await UILoader.LoadSpriteAsync("HeroHead", teamHero.skinConfig.SquareIcon); |
| | | if (this == null) return; |
| | | imgSkillName.sprite = await UILoader.LoadSpriteAsync("SkillNameIcon", skillConfig.SkillTipsName); |
| | | if (this == null) return; |
| | | imgSkillName.SetNativeSize(); |
| | | // 保证开始时所有图片为可见(alpha=1) |
| | | if (imageBg != null) { var c = imageBg.color; c.a = 1f; imageBg.color = c; } |
| | | if (imgIcon != null) { var c = imgIcon.color; c.a = 1f; imgIcon.color = c; } |
| | | if (imgSkillName != null) { var c = imgSkillName.color; c.a = 1f; imgSkillName.color = c; } |
| | | |
| | | gameObject.SetActive(true); |
| | | float posY = transform.localPosition.y; |
| | | transform.localPosition = isRed ? new Vector3(-beginingX, posY, 0f) : new Vector3(beginingX, posY, 0f); |
| | | tween1 = transform.DOLocalMoveX(0, tweenDuration / battleField.speedRatio, false).SetEase(Ease.Linear).OnComplete(() => |
| | | { |
| | | tween1 = null; |
| | | tween3 = DOVirtual.DelayedCall(delayDuration / battleField.speedRatio, () => |
| | | { |
| | | tween3 = null; |
| | | |
| | | // tween2 改为做减淡(对 imageBg、imgIcon、imgSkillName 同步淡出) |
| | | float fadeDuration = tweenDuration / battleField.speedRatio; |
| | | Sequence seq = DOTween.Sequence(); |
| | | if (imageBg != null) |
| | | seq.Join(imageBg.DOFade(0f, fadeDuration).SetEase(Ease.InQuad)); |
| | | if (imgIcon != null) |
| | | seq.Join(imgIcon.DOFade(0f, fadeDuration).SetEase(Ease.InQuad)); |
| | | if (imgSkillName != null) |
| | | seq.Join(imgSkillName.DOFade(0f, fadeDuration).SetEase(Ease.InQuad)); |
| | | |
| | | seq.OnComplete(() => |
| | | { |
| | | tween2 = null; |
| | | // 恢复图片 alpha,保证下次显示时可见 |
| | | if (imageBg != null) { var cc = imageBg.color; cc.a = 1f; imageBg.color = cc; } |
| | | if (imgIcon != null) { var cc = imgIcon.color; cc.a = 1f; imgIcon.color = cc; } |
| | | if (imgSkillName != null) { var cc = imgSkillName.color; cc.a = 1f; imgSkillName.color = cc; } |
| | | |
| | | transform.localPosition = isRed ? new Vector3(-beginingX, posY, 0f) : new Vector3(beginingX, posY, 0f); |
| | | gameObject.SetActive(false); |
| | | }); |
| | | |
| | | tween2 = seq; |
| | | battleField.battleTweenMgr.OnPlayTween(tween2); |
| | | }); |
| | | battleField.battleTweenMgr.OnPlayTween(tween3); |
| | | }); |
| | | battleField.battleTweenMgr.OnPlayTween(tween1); |
| | | } |
| | | |
| | | public void KillAllTweens() |
| | | { |