unity-多次执行DOVirtual.DelayedCall,导致多次新建Tweener 对象而引发错误的问题

DoTween -> DOVirtual.DelayedCall 方法:会在指定的延迟时间后执行回调,并且会创建一个新的 Tweener 对象,但它不会自动创建一个新的 Sequence。

上面是对 DOVirtual.DelayedCall 方法的描述,即每次延时运行一次 DOVirtual.DelayedCall 就会建立一个新的 Tweener 对象,今天就因为不知道它是每次都会新建Tween,导致出现奇怪的问题,整了半天!

如:未处理前,同时三次运行后效果如下,出现了三个事件,如果你只是想不论延迟多少次,只是想执行一个动画的时候,就会导致有问题。

DOVirtual.DelayedCall(Random.Range(1f, 6), () =>
{
    Debug.Log("DelayedCall");
});

解决:

 保存Tween对象,然后每次运行前先kill掉上次事件即可

public class Test : MonoBehaviour
{
    private Tween mDelayCallTween;

    void Start()
    {
        mDelayCallTween.Kill();
        mDelayCallTween = DOVirtual.DelayedCall(Random.Range(1f, 6), () =>
        {
            Debug.Log("DelayedCall");
        });
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值