7548人加入学习
(77人评价)
Dotween API详解及动效插件(Unity 2017.3)

制作完成于2018-12-14

价格 免费

 /**16-队列—添加动画及添加延时
         * 队列:根据队列一个一个的执行对话
         * 生成一个对象
         */
        //方法一
        Sequence quence = DOTween.Sequence();
        //缓存其他对象的方法,做一些便利的操作   可用性较高
        quence.Append(transform.DOMove(-Vector3.one,2));//把一项加入
        quence.AppendInterval(1);//添加延时
        //先执行第一个,然后依次执行
         //方法二
        quence.Append(transform.DOMove(new Vector3(1, 0, 1), 2));//把一项加入

 

[展开全文]

/**14-相机晃动效果实现
         * 传递参数: duration持续时间
         *            strendth强度
         *            vibrato震动次数
         *     可忽略参数       
         *            randomness随机参数
         *            fade是否淡入
         *            
         */
        camera.DOShakePosition(2,10,10);

 

 

[展开全文]

 // camera.DOPixelRect(new Rect(360,0,500,500),2);

 

 

使用百分比

多相机实现分屏效果的方式

新建相机Main Camera

xy的位置坐标修改一下
        camera.DORect(new Rect(0, 0, 500, 500),3);

[展开全文]

Field of View

放大镜

 

  camera.DOFieldOfView(1,5);  

简称fov


         * 改变相机正交视域的大小
         * Projection 投射,放映   
         *   默认的是Perspective透视的

         *   Orthographic正交

         *   camera.DOOrthoSize(1,20);
       

 

 

 

 

 

[展开全文]

给相机挂载脚本

 //Camera camera = GetComponent<Camera>();
        ////改变屏幕的宽高比
        //camera.DOAspect(0.5f,2);
        ////改变颜色
        //camera.DOColor(Color.red,2);

 

  //启用协程
        StartCoroutine(ChangeColor());

    }
    /// <summary>
    ///  创建协程方法
    /// </summary>
    IEnumerator ChangeColor() {
        Camera camera = GetComponent<Camera>();
        //这个颜色是渐变的,时间越长效果突出
        camera.DOColor(Color.red, 0.1f);
        yield return new WaitForSeconds(0.1f);
        camera.DOColor(Color.blue, 5);
        yield return new WaitForSeconds(5);
        camera.DOColor(Color.red, 0.1f);
        yield return new WaitForSeconds(0.1f);
        camera.DOColor(Color.blue, 5);
    }//近切面
        camera.DONearClipPlane(2,2);
        //远切面
       // camera.DOFarClipPlane(2,2);

[展开全文]

   /**10-材质的颜色混合
         * DOColor同时执行两个会执行最新的那个
         *  material.DOColor(Color.red,"_Color",2);
         *  material.DOColor(Color.green, "_Color", 2);
         *  将 红色-绿色 混合在一起 变成了黑色  
         * */
        material.DOBlendableColor(Color.red,"_Color", 2);
        material.DOBlendableColor(Color.green, "_Color",2);

 

[展开全文]

改变材质offset的值
material.DOOffset(new Vector2(1, 1), 2);

不常用

改变提供的shader属性的名称对应的Vector4值
material.DOVector(new Vector4(0, 0, 0, 1), "_Color", 3);

 

[展开全文]

  /**
         颜色渐变Gradient

        首先定义一个_gradient   在unity中该脚本产生出颜色渐变器工具

        Alpha值代表透明度0-255
        上面的代表透明度

        下面的代表颜色

         */
       //让unity上面指定的颜色显示
        material.DOGradientColor(_gradient,2);

[展开全文]

//透明  颜色的值,是一个四维向量,最后一位 阿尔法 是0
        // material.DOColor(Color.clear,2);
        //淡入透明所需要的时间
        material.DOFade(0,2);

 

Tip:中间最好指定名字

默认设置_Color的值

(为空报错)

 

   >  //需要把unity中shader材质修改particles/Standard Unlit
        //Blending Options  Rendering Mode改成Fade

 

每个材质都有自己的特点

 

 

 

[展开全文]

 

 /**  材质material改变颜色动画    */
        //获取子的材质球
        Material material = GetComponent<MeshRenderer>().material;
        //设置颜色
        material.DOColor(Color.red,2);

        //通过shaders改变颜色--适用于没有maincolor的材质
        material.DOColor(Color.red,"namecolor", 2);

 

   >  //需要把unity中shader材质修改particles/Standard Unlit
        //Blending Options  Rendering Mode改成Fade

 

[展开全文]

 /**
     * 老版本都会执行,产生效果
     * 新版本只会执行最新的一行
     * transform.DOMove(Vector3.one,2);
        transform.DOMove(Vector3.one*2, 2);
    */

 

  //blend  将正常的两个坐标合在一起  动画混合  先进行计算,后显示
        //transform.DOBlendableMoveBy(Vector3.one , 2);
        // transform.DOBlendableMoveBy(-Vector3.one , 2);
           //只有一个punch方法 transform.DOBlendablePunchRotation(-Vector3.one * 2, 2);
     

[展开全文]

  rotate旋转
        //旋转  只有整体改变的没有单坐标的
        transform.DORotate(Vector3.zero,2);
        //局部旋转
        transform.DOLocalRotate(Vector3.zero, 2);
        //资源树   旋转到提供的位置   使用较少,难度高
        transform.DORotateQuaternion(new Quaternion(0.1f,0.1f,0.1f,0.1f),2);
         // 慢慢看向这个位置
        transform.DOLookAt(Vector3.one,2);

 

scale缩放
        //man --kuai -man  平滑曲线
        //transform.DOScale(Vector3.one*2,2);
        /*弹弹弹   第一个参数 punch 运动的方向  力的大小
          第二个参数 duration持续时间
          第三个参数 震动次数(频率)
          第四个参数0-1  
        当它为0的时候 从起始点
         */
        // transform.DOPunchPosition(new Vector3(0,1,0),2,2,0.1f);
      //参数是一样的,运用到不同的地方
        //transform.DOPunchRotation(new Vector3(0, 1, 0), 2, 2, 0.1f);
       //transform.DOPunchScale(new Vector3(0, 1, 0), 2, 2, 0.1f);

 

[展开全文]

Documentation  官网上了解

纯英文的网站

建议使用谷歌网站访问,翻译成中文

 

 

引用命名空间

using DG.Tweening;

 //单轴移动  目标位置,移动时间
        transform.DOMove(Vector3.one,2);
        //世界坐标
        transform.DOLocalMoveX(1, 2);
        //局部坐标  
        transform.DOLocalMove(Vector3.one, 2);


        //旋转  只有整体改变的没有单坐标的
        transform.DORotate(Vector3.zero,2);
        //局部旋转
        transform.DOLocalRotate(Vector3.zero, 2);

[展开全文]

Dotween动态效果插件

广泛用于UI效果,点击效果   相当于扩展插件的库

 

(DotweenPro收费版    免费版free)

获取插件放到项目的新建文件夹Plugins中

 

或者在Asset Store商店中导入import(新版本中)

点击

就可以了

 

 

了解

 

 

 

 

[展开全文]

二、SetVector方法

material.DOVector(<n维度向量>,<属性名称>,变化时长)

[展开全文]

1.引入命名空间

using DG.Tweening:

2.transform方法

 //DOMOVE改变物体Postion

transform.DOMove(目标位置Vector3.one,运动时间2);

transform.DOLocalMoveX(1,2);

transform.DOLocalMove();

//DORotate旋转

transform.DORotate(Vector3.one,2);运动到输入坐标

transform.DOLocalRotate(Vector3.one,2);局部角度

 

 

 

[展开全文]

授课教师

课程特色

下载资料(1)
视频(45)

学员动态

_weirdo 加入学习
S一en 加入学习
Parola 完成了 资料
Parola 开始学习 资料
Parola 加入学习