Unity3DDoTween动画播放异常

BUG出现原因:

  • 当一个DOTween动画播放时长大于0s;
  • 该动画还未播放完毕,便开启另一段动画;
  • 并调用该动画的关闭函数。

BUG:

      上一段本应该结束的动画,没有结束。

解决步骤:

  1. 为动画设置ID
  2. 在关闭此动画的方法调用 DOTween.Kill("ID");
public class TweenChange: MonoBehaviour {

    public void OnShow()
    {
        DOTween.Kill(transform.name);
        transform.DOScale(new Vector3(1.75f, 1.75f, 0), 0.3f).SetId(transform.name);
    }

    public void OnHide()
    {
        DOTween.Kill(transform.name);
        transform.DOScale(new Vector3(1.0f, 1.0f, 0), 0.3f).SetId(transform.name);
    }
}

注意:

DOTween.Kill("name"); 根据设置的ID名字来关闭动画,它将会关闭该程序里面所有ID是"name"的动画。

因此,动画的名字ID尽量不要重复,要能体现改动画特点,以免出现关闭不该关闭的动画。


另一个方法:

此种写法不存在以上BUG。 但一个物体多个动画,暂时不会写。

public class TimeLineNavBtn : MonoBehaviour {

    private void Awake()
    {
        Tweener tweener = transform.DOScale(new Vector3(1.75f, 1.75f, 0), 0.3f);
        tweener.SetAutoKill(false); //自动销毁设为False,否则播放一次就不能播放了
        tweener.Pause();            //开始的时候,暂停状态,可以不设置,开始就播放。
    }

    public void OnShow()
    {
        transform.DOPlayForward();      //向前播放
    }

    public void OnHide()
    {
        transform.DOPlayBackwards();    //倒放
    }

}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值