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

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

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

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

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

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

解决:

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

public class Test : MonoBehaviour
{
    private Tween mDelayCallTween;

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

你可能感兴趣的:(unity,3d,unity,DoTween)