最近在做策划给的一些关于FPS类型的需求,Demo基本已经成型,接下来整理并记录,高手略过,不喜勿喷!!!
主要是用了DoTween差件的ToAlpha方法
思路:Player受到伤害,显示UI血图,0.5s内图片alpha设置成0
private Image uiSprite;//全屏血图
private Color _alpha;//全屏血图 alpha
private Color _childAlpha; //小血块 alph
private Image childImage;
void Awake () {
_instance = this;
uiSprite = GetComponent<Image>();
childImage = transform.GetChild(0).GetComponent<Image>();
uiSprite.enabled = false;
childImage.enabled = false;
_alpha = uiSprite.color;
_childAlpha = childImage.color;
}
public void Show() {
uiSprite.enabled = true;
childImage.enabled = true;
//childImage.CrossFadeAlpha(0, 0.5f, true);
Tween tc = DOTween.ToAlpha
(
() => childImage.color,
(c) => childImage.color = c,
0,
0.5f
);
Tween t = DOTween.ToAlpha
(
() => uiSprite.color,
(c) => uiSprite.color = c,
0,
0.5f
);
t.OnComplete(() =>
{
uiSprite.color = _alpha;
uiSprite.enabled = false;
childImage.color = _childAlpha;
childImage.enabled = false;
});
}