美文网首页
DoTween插件

DoTween插件

作者: 千喜AR | 来源:发表于2017-07-06 22:34 被阅读376次

    doteeen(hotween第二个版本) hotween leantween gokit itween(多个相同动画类型的插件):性能最高的是dotween

    引用命名空间:using DG.Tweening;

    第一种动画方式:通过改变值(与游戏物体属性关联)来实现动画

    public Vector3 myValue = new Vector3(0,0,0);

    //对变量做一个动画 (通过插值的方式去修改一个值的变化)

    DOTween.To(() => myValue, x => myValue = x, new Vector3(10,10,10), 2);

    //前两个参数可以固定,只要改变myValue类型(vector3,float,int等)

    第二种方式:

    //让paneltransfrom从当前位置 动画到 0,0,0的位置 时间为1s (修改的世界坐标),UI上是局部坐标

    paneltransfrom.DoMove(目标值,时间)方法

    //修改的是局部坐标

    panelTransform.DOLocalMove(new Vector3(0, 0, 0), 0.3f);//默认动画播放完成会被销毁(所以无法回放,使用DOPlayBackwards()方法无法回放)

    设置其不被销毁:

    //Tweener对象保存这个动画的信息 每次调用do类型的方法都会创建一个tweener对象,这个对象是dotween来管理

    void Start() {

    //panelTransform.DOMove(new Vector3(0, 0, 0), 1);//让paneltransfrom从当前位置 动画到 0,0,0的位置 时间为1s (修改的世界坐标)

    Tweener tweener = panelTransform.DOLocalMove(new Vector3(0, 0, 0), 0.3f);//默认动画播放完成会被销毁

    //Tweener对象保存这个动画的信息 每次调用do类型的方法都会创建一个tweener对象,这个对象是dotween来管理

    tweener.SetAutoKill(false);// 把autokill 自动销毁设置为false

    tweener.Pause();//不想执行就暂停

    }

    实现效果:点击进屏幕,再点击出屏幕

    注意:调用DoPlay()只执行一次

    DoPlayForward():会执行所有的动画

    fromTween函数使用:

    transform.DOMoveX(5, 3):对单个值做控制,第一个参数是目标值,后一个是时间,从当前位置到目标位置

    transform.DOMoveX(5, 3).From():改变运动方向,就是从目标位置到当前位置

    transform.DOMoveX(5, 4).From(true):true表示目标位置是相对位置,比如当前位置X是1,运行之后就会从1到1+5=6的位置

    动画的属性设置:

    想要修改哪个组件上的属性就要得到相对应的组件:比如改变image透明值,就要得到image组件

    可调用对象:

    1. Image

    2. Text

    3. OutLine

    4. Graphic

    下面是对应方法:

    publicstaticTweener DOColor(thisImage target, Color endValue,floatduration);

    通过下面的代码,增强理解,和记忆:这里以图片为例

    Tweener tweener = transform.DOLocalMoveX(0, 2);

    tweener.SetEase(Ease.OutBounce);//设置动画的曲线

    tweener.setLoops(2):设置动画循环次数,0是执行一次

    tweener.OnComplete(OnTweenComplete);//动画结束事件

    void OnTweenComplete() {

    Debug.Log("动画播放完成了");

    }

    动画的生命周期:

    自动播放,除非更改defaultAutoPlay

    播放完自动销毁,除非更改defaultAutoKill

    想要重复播放,调用setAutoKill方法

    暂停,Pause方法

    如果动画目标变成空会报错,可以设置安全模式

    onRewind:当动画背重置的时候

    onStart:开始的时候执行一次

    onPlay:会调用多次

    对话框文字动画:

    text.DOText("接下来,我们进入第二篇章接下来,我们进入第二篇章", 4);//总共时间为4S

    Text上面没有文字时,默认一个字一个字显示的。如果有文字就一点一点的覆盖掉

    richText:表示支持富文本


    text  --粗体

    text     --斜体

    text   --自定义字号

    text --自定义颜色

    text       --自定义颜色(16进制)

    屏幕震动效果(实际是camera的震动,随机向周围运动,最后会回到原来的未知):

    camera.transform.DOShakePosition(1,new Vector3(3,3,0));

    new Vector3(3,3,0):震动强度,两种表示方式,0-1值(前后震动),第二种是向量(控制震动强度)

    1:震动持续时间

    颜色和透明度动画:

    text.DOColor(Color.red, 2);

    text.DOFade(1, 3);

    插件里面DO方法是创建动画的,set方法是设置属性的,on方法是设置生命周期事件的

    dotween.init();//初始化方法,可以自己设置初始化//会以默认值初始化

    官网的document上有对应的组件支持的方法

    创建序列:(对多个动画统一集合管理)

    还有一些全局设置,比如自动销毁,自动播放

    动画的组件可视化编程:

    给对应的游戏物体添加doTweenAnimation组件,要找这个组件上支持的方法,不然会报错,动画会有自己的ID,可以通过ID控制动画

    如果要在代码上控制播放:

    DOTweenAnimation tweenAnimation = GetComponent<>(DOTweenAnimation);

    tweenAnimation.DOPlay();//播放

    点击循环播放:

    public void OnClick() {

    if (isShow == true) {

    tweenAnimation.DOPlayBackwards();

    isShow = false;

    }

    else {

    tweenAnimation.DOPlayForward();

    isShow = true;

    }

    }

    doTweenPath可视化路径编辑器,让游戏物体按照指定的路径来运动(比如漫游):

    添加doTweenPath组件

    两个快捷方式:shift+ctrl:添加路径点

                               shift+alt移除路径点

    ease:曲线类型

    autokill:销毁的只是动画,路径可以重复使用

    loop:-1:无限循环 0:播放一次

    pathType:路径类型,直线和曲线

    classpath:是否为闭合,完整一圈

    localMovement:按照局部坐标移动

    orientatoin:朝向

    relative:为true时移动游戏物体所有点会保持原先相对距离跟随游戏物体移动(整体位移),单个点还是可以移动的

    color:辅助线颜色

    show indexes:显示索引(点)

    handles type:图标的类型(比如显示点的3个轴)

    handle mode:2D还是3D

    reset path:重置

    脚本得到已经设置的路径:

    waypoint里可以看到所有的点

    doTogglePause:点一下运动点一下暂停

    dokill:杀死动画

    restart:重新播放

    相关文章

      网友评论

          本文标题:DoTween插件

          本文链接:https://www.haomeiwen.com/subject/ooothxtx.html