Tweener学习三 之 Sequence

文章来源:http://blog.youkuaiyun.com/likendsl/article/details/50887689

创建Tweener(有三种方法):

  1. static DOTween.To(getter, setter, to, float duration)  
  2. 以DOTween.To(() => myVector, x => myVector = x, new Vector3(3, 4, 8), 1);为例,就是对myVector进行插值,目标值为Vector3(3, 4, 8)  

  1. transform.DOMove(new Vector3(2,3,4), 1);  
  2. rigidbody.DOMove(new Vector3(2,3,4), 1);  
  3. material.DOColor(Color.green, 1);  

对于unity内置的一些组件,都可以通过".+DO开头的方法"的方式创建补间动画

以transform.DOMove(new Vector3(2,3,4), 1)为例,new Vector3(2,3,4)是最终值,意思是用一秒的时间运动到Vector3(2,3,4)

而transform.DOMove(new Vector3(2, 3, 4), 1).From(),就是从Vector3(2,3,4)运动到当前位置


创建Sequence:

Sequence可以包含Sequence,当执行一个Sequence时会顺序执行Tweener,可以使用Insert方法实现同时执行。

Sequence的方法:


  1. static DOTween.Sequence()  
  2.   
  3. Append(Tween tween)  
  4. AppendCallback(TweenCallback callback)  
  5. AppendInterval(float interval)  
  6. Insert(float atPosition, Tween tween)  
  7. InsertCallback(float atPosition, TweenCallback callback)  
  8. Join(Tween tween)  
  9. Prepend(Tween tween)  
  10. PrependCallback(TweenCallback callback)  
  11. PrependInterval(float interval)  

例子:

  1. Sequence mySequence = DOTween.Sequence();  
  2. // Add a movement tween at the beginning  
  3. mySequence.Append(transform.DOMoveX(1, 1));  
  4. // Add a rotation tween as soon as the previous one is finished  
  5. mySequence.Append(transform.DORotate(new Vector3(0, 180, 0), 1));  
  6. // Delay the whole Sequence by 1 second  
  7. mySequence.PrependInterval(1);  
  8. // Insert a scale tween for the whole duration of the Sequence  
  9. mySequence.Insert(0, transform.DOScale(new Vector3(3, 3, 3), mySequence.Duration())); 

等同于:

  1. Sequence mySequence = DOTween.Sequence();  
  2. mySequence.Append(transform.DOMoveX(45, 1))  
  3.           .Append(transform.DORotate(new Vector3(0, 180, 0), 1))  
  4.           .PrependInterval(1)  
  5.           .Insert(0, transform.DOScale(new Vector3(3, 3, 3), mySequence.Duration()));  

上面我们提到了全局设置,这里我们再说一说针对Tweener和Sequence的局部设置


  1. float timeScale  
  2.   
  3. SetAs(Tween tween \ TweenParams tweenParams)  
  4. SetAutoKill(bool autoKillOnCompletion = true)  
  5. SetEase(Ease easeType \ AnimationCurve animCurve \ EaseFunction customEase)  
  6. SetId(object id)  
  7. SetLoops(int loops, LoopType loopType = LoopType.Restart)  
  8. SetRecyclable(bool recyclable)  
  9. SetUpdate(UpdateType updateType, bool isIndependentUpdate = false)  
  10. 注意的一点是SetUpdate方法可以让目标忽略timeScale  

回调方法:


  1. OnComplete(TweenCallback callback)  
  2. OnKill(TweenCallback callback)  
  3. OnPlay(TweenCallback callback)  
  4. OnPause(TweenCallback callback)  
  5. OnRewind(TweenCallback callback)  
  6. OnStart(TweenCallback callback)  
  7. OnStepComplete(TweenCallback callback)  
  8. OnUpdate(TweenCallback callback)  
  9. OnWaypointChange(TweenCallback<int> callback)  


操作Tweener(有三种方法):

1.DOTween静态方法


  1. DOTween.PauseAll();  
  2. // Pauses all tweens that have "badoom" as an id  
  3. DOTween.Pause("badoom");  
  4. // Pauses all tweens that have someTransform as a target  
  5. DOTween.Pause(someTransform);  


2.Tweener方法

  1. myTween.Pause();  


3.部件.+以DO开头的方法

  1. transform.DOPause();  


以上的是Pause方法,以下的是其余的操作方法。上面三种方式中,DOTween和Tweener都有以下的操作方法,而部件的话,要在前面加上"DO"。

  1. ompleteAll/Complete()  
  2. FlipAll/Flip()  
  3. GotoAll/Goto(float to, bool andPlay = false)  
  4. KillAll/Kill(bool complete = true)  
  5. PauseAll/Pause()  
  6. PlayAll/Play()  
  7. PlayBackwardsAll/PlayBackwards()  
  8. PlayForwardAll/PlayForward()  
  9. RestartAll/Restart(bool includeDelay = true)  
  10. RewindAll/Rewind(bool includeDelay = true)  
  11. TogglePauseAll/TogglePause()  


文章来源: http://blog.youkuaiyun.com/likendsl/article/details/50887689

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值