Skip to main content

Sequence队列

Sequence队列

在Unity中添加一个Cube,并挂载这个脚本

添加动画和添加延时

//利用队列两个DOMove方法就不会覆盖了,会一个一个的执行
quence.Append(transform.DOMove(Vector3.one,2)); //0-2
quence.AppendInterval(1); //添加延时,隔1s执行下一个 //2-3
quence.Append(transform.DOMove(-Vector3.one,2)); //3-5

按时间点插入动画

//把动画插入到某个位置,但并不会妨碍队列中原来的动画运动
//比如插入这个1s的动画,第0s时开始这个动画覆盖了刚开始的动画,第1s开始又开始执行原队列中的动画
quence.Insert(0, transform.DOMove(-Vector3.one, 1)); //0-1

加入动画Join

quence.Append(transform.DOMove(Vector3.one,2));
quence.Join(transform.DOScale(Vector3.one * 2,2));
//Join会加入和当前正在执行的动画一起执行
quence.Append(transform.DOMove(-Vector3.one,2));
quence.Join(transform.DOScale(Vector3.one * 2, 2));

预添加动画

quence.Append(transform.DOMove(Vector3.one,2));
//预添加动画
//预添加的动画和正常添加执行是反的,后添加的先执行
quence.PrependInterval(1); //预添加的间隔
quence.Prepend(transform.DOMove(-Vector3.one * 2, 2));
//先执行PrependInterval,再执行Prepend,再执行Append

添加回调函数:

private void Start()
{
Sequence quence = DOTween.Sequence();

quence.Append(transform.DOMove(Vector3.one,2));
//写在某个队列后,在执行完这个方法就会调用回调函数
quence.AppendCallback(InsertCallBack);

//在规定时间点插入回调函数
quence.InsertCallback(1, InsertCallBack);
}

private void InsertCallBack()
{
Debug.Log("回调一次");
}