Unity最好用的插件?!速通DOTween插件的使用

欢迎加入光光的奇妙冒险,我是你们的煎饼光子老师。

这节课我们来挑战一下速通Unity中非常好用的DOTween插件


首先是插件的安装

Unity资源商店地址

在Unity的资源商店中搜索DOTween,选择Free,也就是免费的版本即可,可以满足我们大部分的需求

然后选择添加至我的资源

如果大家此时已经打开了Unity,可以点击在Unity中打开,这样回到Unity,就会直接打开资源下载界面

或者在Unity中按照以下图片的指示下载资源

下载完成后就可以选择Import(导入)

之后会出现这样一个面板,大家点击这个Open DOTween。。。就可以

接下来的这个面板可以进行一些设置,但可以选择不改,因为默认的就已经能满足我们的大多数需求

然后点击Setup DOTween。。。

等待一会儿,就会出现下面这个窗口

直接点击右上角的X即可,不要点击Apply也不要点击Cancel

至此DOTween已经安装成功


接下来介绍下DOTween中常用的几个API

其实还是非常简单的,大家跟着敲上几遍,再简单消化下就OK了

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;//引用命名空间
using UnityEngine.UI;

//这个脚本会挂在一个2D游戏中的方块上
public class DOTweenTest : MonoBehaviour
{    
    public Text text2;//打字机效果会使用的文本
    private void Start() 
    {
        //注意这三种API:
        //Do开头:执行,参数:1.目标值 2.执行时间
        //Set开头:设置状态
        //From:归位

        //移动到世界坐标系下的(4,2)位置,时间为1秒
        transform.DOMove(new Vector2(4,2),1f);

        //移动到本地坐标系下的(4,2)位置,时间为1秒
        transform.DOLocalMove(new Vector2(4,2),1f);

        //SetRelative:参数里的位置不再是世界坐标系的目标位置,而是相对于当前位置的偏移
        //例如这里的意思就是在当前位置的基础上加上(4,2)的偏移
        transform.DOMove(new Vector2(4,2),1f).SetRelative();

        //SetEase:设置动画的变化
        transform.DOMove(new Vector2(4,2),1f).SetEase(Ease.InOutSine);

        //移动到目标位置后,归位
        transform.DOMove(new Vector2(4,2),1f).From();

        //SetLoops循环
        //LoopType.Yoyo为来回循环,
        //LoopType.Restart为每次执行完毕后会返回原点,
        //LoopType.Incremental为递增,会朝着目标方向不返回的前进指定次数。
        //第一个参数次数为-1时则为无限循环
        transform.DOMove(new Vector2(4,2),1f).SetLoops(-1, LoopType.Yoyo);
        transform.DOMove(new Vector2(4,2),1f).SetLoops(-1, LoopType.Restart);
        transform.DOMove(new Vector2(4,2),1f).SetLoops(-1, LoopType.Incremental);        
    }
    private void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            //注意:打字机效果只适用于老版text
            //打字机效果实现后执行的回调函数
            //在这个回调中,我们添加了一个Sequence
            text2.DOText("Hello World!",2f).OnComplete(()=>
            {
                text2.DOColor(Color.red, 0.2f);

                //Sequence可以看作是一个存放各种DOTween操作的列表
                //通过Append在Sequence中添加操作
                //然后Sequence会依次执行里面的内容

                //使用Sequence,要先new一个Sequence
                Sequence mySequence = DOTween.Sequence();
                mySequence.Append(text2.DOColor(Color.black, 0.1f));

                //在Sequence也可以使用回调函数
                //例如:插入在颜色变黑操作后的回调函数
                mySequence.AppendCallback(()=>{
                    print("颜色变黑后回调");
                });
                mySequence.Append(text2.DOColor(Color.red, 0.1f));
                //例如:插入在颜色变红操作后的回调函数
                mySequence.AppendCallback(()=>{
                    print("颜色变红后回调");
                });

                //注意:添加到Sequence中的操作,如果有循环,没有效果
                //但可以给Sequence设置Loops
                mySequence.SetLoops(-1, LoopType.Yoyo);
            });            
        }
    }
}

在上面的API中,有一个使用到了SetEase,这其实是一种变化曲线,应用后,你的DOTween效果就会像对应曲线那样变化

下面这个网站中就列举了所有的曲线变化,大家可以点击查看

曲线网站


到这里为止,本期的速通挑战就结束了,相信大家已经对DOTween建立了一个基本的理解。

当然它的内容还远远不止如此,像是改变材质,与UI控件结合这些操作都可以在DOTween的官方网站的手册中查看。

最后,希望能看到大家用DOTween做出各种奇妙的效果。

我是煎饼光子老师,下期再见!

猜你喜欢

转载自blog.csdn.net/Blueberry124/article/details/142422994