using System.Collections;
|
using System.Collections.Generic;
|
using DG.Tweening;
|
using UnityEngine.UI;
|
using UnityEngine;
|
|
public class SkillTips : MonoBehaviour
|
{
|
public const float tweenDuration = 1f;
|
|
public const float delayDuration = 0.4f;
|
|
public const float beginingX = 400f;
|
|
[SerializeField]public Image imgIcon;
|
|
[SerializeField]public Image imgSkillName;
|
|
[SerializeField] public Image imageBg;
|
|
private Tween tween1;
|
private Tween tween2;
|
private Tween tween3;
|
|
public void PlayMotion(BattleField battleField, bool isRed, TeamHero teamHero, SkillConfig skillConfig)
|
{
|
if (teamHero == null || skillConfig == null)
|
{
|
return;
|
}
|
|
if (skillConfig.FuncType != 2)
|
return;
|
|
KillAllTweens();
|
|
imgIcon.sprite = UILoader.LoadSprite("HeroHead", teamHero.skinConfig.SquareIcon);
|
imgSkillName.sprite = UILoader.LoadSprite("SkillNameIcon", skillConfig.SkillTipsName);
|
|
// 保证开始时所有图片为可见(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;
|
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()
|
{
|
if (tween1 != null)
|
{
|
tween1.Kill();
|
tween1 = null;
|
}
|
if (tween2 != null)
|
{
|
tween2.Kill();
|
tween2 = null;
|
}
|
if (tween3 != null)
|
{
|
tween3.Kill();
|
tween3 = null;
|
}
|
}
|
|
}
|