DOTween-菜鸟初学(五)回调函数

时间:2025-01-25 20:26:49

(TweenCallback回调)
指结束后开始调用

 transform.DOMove(new Vector3(0, 3f, 0), 1).SetLoops(3, LoopType.Yoyo).OnComplete(() => { Debug.Log("666"); });

(TweenCallback回调)
完成单个循环开始调用

transform.DOMove(new Vector3(0, 3f, 0), 1).SetLoops(3, LoopType.Yoyo).OnStepComplete(() => { Debug.Log("666"); });

最后会输出三次666。

(TweenCallback回调)

Sequence q = DOTween.Sequence();
        q.Append(transform.DOMove(new Vector3(0, 3f, 0), 2).OnKill(() => { Debug.Log("666"); }));
        q.Insert(1, transform.DOMove(new Vector3(0, -1f, 0), 1));
        q.Append(transform.DOMove(new Vector3(0, 2f, 0), 3));

是指所有运动结束时,才触发。
最后结果为物体到达(0,2,0),才输出666;

(TweenCallback回调)

transform.DOMove(new Vector3(0, 3f, 0), 4).OnPlay(() => { Debug.Log("666"); });
        await Task.Delay(TimeSpan.FromSeconds(1));
        transform.DOPause();
        await Task.Delay(TimeSpan.FromSeconds(1));
        transform.DOPlay();

每次从暂停状态恢复播放,会输出调用,最后输出两次666.

(TweenCallback回调)

transform.DOMove(new Vector3(0, 3f, 0), 4).OnPause(() => { Debug.Log("666"); });
        await Task.Delay(TimeSpan.FromSeconds(1));
        transform.DOPause();

当状态从播放变为暂停时将触发的回调,最后输出一次666.

(TweenCallback回调)

transform.DOMove(new Vector3(0, 3f, 0), 3).OnStart(() => { Debug.Log("666"); });

开始时调用,与OnPlay有所不同.不会因为暂停开始而调用

(TweenCallback回调)

transform.DOMove(new Vector3(0, 3f, 0), 3).OnUpdate(() => { Debug.Log("666"); });

每一帧调用。

(TweenCallback回调)

transform.DOMove(new Vector3(0, 3f, 0), 4).OnRewind(() => { Debug.Log("666"); });
        await Task.Delay(TimeSpan.FromSeconds(1));
        transform.DORewind();

播放时到达起始位置时将触发,调用。最后输出一次666.。

--------------------------------------------------------------------------分界线
最后发现DOSmoothRewind和DORewind和DOFlip都可以使物体返回运动。
DOTogglePause能结合DOPause和DOPlay两种方法。