使用 DOTween 的鼠标单击动画淡入淡出不起作用

问题描述

我正在尝试使用两个精灵制作鼠标点击动画一个是鼠标正常,第二个是鼠标左键单击突出显示,我淡化普通精灵(0 到 100)以显示一个其下方的精灵。

Normal mouse

_ _ _ _

Highlighted mouse

这是我制作动画的三个函数(我为动画调用 Click):

public void Click() {
    ClickOn();
}

public void ClickOn() {
    print("Click on");
    mouseNoClick.DOFade(endValue: 0f,duration: 0.8f).OnComplete(ClickOff); //mouseNoClick is the sprite of the normal mouse (without highlighted).
}

public void ClickOff() {
    print("Click off");        
    mouseNoClick.DOFade(endValue: 100f,duration: 0.8f);
}

但是我得到了这个: https://youtu.be/q7qPt8Hr8Bw

解决方法

在开始一个新的补间之前,尝试使用:

mouseNoClick.DOKill();

您还可以将整个淡出/淡入补间转换为一个序列:

transform.DOKill();
DOTween.Sequence()
    .SetTarget(transform)
    .Append(mouseNoClick.DOFade(0f,0.8f))
    .Append(mouseNoClick.DOFade(100f,0.8f));