赞
踩
动画插入注意事项:
transform.DOMoveX(4, 1).OnComplete(MyCallback);//设置回调,在tween到达完成时触发,所有循环都包含在内。
transform.DOMoveX(4, 1).OnKill(MyCallback);//设置一个回调,在tween被删除的那一刻被触发
transform.DOMoveX(4, 1).OnPlay(MyCallback);//设置一个回调,当动画设置为播放状态时,在任何最终延迟之后将被触发。每次动画从暂停状态恢复播放时也称为。
transform.DOMoveX(4, 1).OnPause(MyCallback);//设置回调,当动画状态从播放状态更改为暂停时将被触发
transform.DOMoveX(4, 1).OnRewind(MyCallback);//设置一个回调播放时通过调用或到达起始位置来重新播放时触发
transform.DOMoveX(4, 1).OnStart(MyCallback);//设置将在补间启动时触发一次的回调(意味着当补间第一次设置为播放状态时,在任何最终延迟之后)。
transform.DOMoveX(4, 1).OnStepComplete(MyCallback);//设置一个回调,每次动画完成一个循环循环后将被触发。
transform.DOMoveX(4, 1).OnUpdate(MyCallback);//设置一个回调,将在每次动画更新时触发。
void Start() {
transform.DOPath(waypoints, 1).OnWaypointChange(MyCallback);//设置将在路径补间的当前航点更改时触发的回调。
//这是一个特殊的回调,与其他回调不同,它需要接受一个类型的参数int(这将是新更改的航点索引)。
}
void MyCallback(int waypointIndex) {
Debug.Log("Waypoint index changed to " + waypointIndex);
}
注意:附加到嵌套动画的回调依然会按照正确的顺序工作。
动画组合(飘字效果)
分析:其实整个动画就是三部分(当然为了使得效果更加漂亮可以加更多的细节在里面,比如放大缩小)
using UnityEngine; using System.Collections; using UnityEngine.UI; using DG.Tweening; public class FlyText : MonoBehaviour { public void FlyTo(Graphic graphic) { RectTransform rt = graphic.rectTransform; Color c = graphic.color; c.a = 0; graphic.color = c; //先将字体透明 Sequence mySequence = DOTween.Sequence(); //创建空序列 Tweener move1 = rt.DOMoveY(rt.position.y + 20, 0.5f); //创建向上移动的第一个动画 Tweener move2 = rt.DOMoveY(rt.position.y + 40, 0.5f); //创建向上移动的第二个动画 Tweener alpha1 = graphic.DOColor(new Color(c.r, c.g, c.b, 1), 0.5f); //创建Alpha由0到1渐变的动画 Tweener alpha2 = graphic.DOColor(new Color(c.r, c.g, c.b, 0), 0.5f); //创建Alpha由1到0渐变的动画 mySequence.Append(move1); //先添加向上移动的动画 mySequence.Join(alpha1); //同时执行Alpha由0到1渐变的动画 mySequence.AppendInterval(1); //延迟1秒钟 mySequence.Append(move2); //添加向上移动的动画 mySequence.Join(alpha2); //同时执行Alpha由1到0渐变的动画 } public void Update() { if(Input.GetMouseButtonDown(0)) { FlyTo(GetComponent<Text>()); } } }
--弹窗动画
function CUIManager:ShowWindows(uiobj)
local rt = uiobj.transform
rt.transform.position = Vector3.New(0, 0, 0)
rt.transform.localScale = Vector3.New(1, 1, 1)
local scalTime = 0.05
local m_scale = rt:DOScale(Vector3(1.1, 1.1, 1), scalTime)
m_scale:SetEase(DG.Tweening.Ease.Linear)
m_scale:SetLoops(2, DG.Tweening.LoopType.Yoyo)
m_scale = rt:DOScale(Vector3(0.9, 0.9, 1), scalTime)
m_scale:SetEase(DG.Tweening.Ease.Linear)
m_scale:SetLoops(2, DG.Tweening.LoopType.Yoyo)
rt.transform:DOShakePosition(scalTime, Vector3(10, 10, 10))
end
void acTest() { // 让当前物体从x=-10,移动到x=10,整个过程必须是9秒钟完成 _tweener = _imageTrans.DOLocalMoveX (10, 9); // 向前播放动画 _tweener.PlayForward (); //倒着播放 _tweener.PlayBackwards (); // 设置匀速移动 _tweener.SetEase (Ease.Linear); // 设置循环次数,-1表示无限循环 _tweener.SetLoops (-1); // 动画播放完成之后的回调函数 _tweener.OnComplete (TweenComplete); }
//控制UGUI的文本组件,文字以打印机的特效显示
void PrintStr ()
{
string str = "打印几个字!";
_text = GetComponent <Text> ();
_text.DOText (str, 5);
// _text.DOColor (Color.yellow, 5);
_text.DOBlendableColor (Color.yellow, 5);
}
//屏幕震动效果
void Shake()
{
transform.DOShakePosition (2f, new Vector3 (2, 2, 3));
transform.DOShakeScale (2, new Vector3 (3, 3, 3));
}
操作Tweener(有三种方法):
1.DOTween静态方法
// Pauses all tweens
DOTween.PauseAll();
// Pauses all tweens that have "badoom" as an id
DOTween.Pause("badoom");
// Pauses all tweens that have someTransform as a target
DOTween.Pause(someTransform);
2.Tweener方法
myTween.Pause();
3.组件.+以DO开头的方法
transform.DOPause();
SetAs(Tween tween \ TweenParams tweenParams)
设置tween(id,ease,loops,delay,timeScale,callbacks等)的参数作为给定的参数或者给予TweenParams对象。
注意:如果动画已经开始,则没有任何效果。
例:
// Store settings for an infinite looping tween with elastic ease
TweenParams tParms = new TweenParams().SetLoops(-1).SetEase(Ease.OutElastic);
// Apply them to a couple of tweens
transformA.DOMoveX(15, 1).SetAs(tParms);
transformB.DOMoveY(10, 1).SetAs(tParms);
tolua 中使用组合动画
function StepComplete () logError("循环动画中单次完成回调!") end function Complete () logError("动画完成回调!") end Panel.Light[1]:GetComponent('Image'):DOFade(0,2) Panel.Light[1]:GetComponent('Image'):DOColor(Color.New(1,1,1,0.5),2) Panel.Light[1].transform:DOLocalMoveY(-300,-100, false):SetEase(DG.Tweening.Ease.Linear):SetLoops(-1):OnStepComplete( StepComplete ) local sequence = DG.Tweening.DOTween.Sequence() --动画列队 sequence:Append( Panel.Light[1]:GetComponent("Image"):DOFade(1,1.5)) sequence:Append( Panel.Light[1]:GetComponent("Image"):DOFade(0,1.5)) sequence:Play() sequence:OnComplete(Complete)
转载:https://www.cnblogs.com/xyptechnology/p/7574890.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。