DOTween插件学习

DOTween插件学习

创建一个新工程,将下载好的DOTween插件直接拖入Project面板

编写一个移动脚本

using UnityEngine;
using DG.Tweening;
public class move : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
transform.DOMove(new Vector3(4, 3, 0), 3); //脚本物体3秒从当前位置移动到世界坐标(4,3,0)位置
transform.DOLocalMove(new Vector3(4, 3, 0),3);//脚本物体3秒从当前位置移动到本地坐标(4,3,0)位置
}

// Update is called once per frame
void Update()
{

}
}

 

DOMove移动相关方法:

世界坐标上移动:transform.DOMove

局部坐标上移动:transform.DOLocalMove

世界坐标的X轴上移动:transform.DOMoveX

局部坐标的X轴上移动:transform.DOLocalMoveX


Form()方法(反向运动):

transform.DOMove(new Vector3(2, 2, 0), 1).From();//2秒时间从世界坐标(2,2,0)处回到自身当前位置
transform.DOMove(new Vector3(2, 2, 0), 2).From(true);//从以自身为原点的坐标系(2,2,0)处回到自身当前位置

按钮控制动画:

设置具体参数如下:

编辑如下Move脚本:

using UnityEngine;
using System.Collections;
using DG.Tweening;

public class Move : MonoBehaviour
{

    public RectTransform rt;
    public bool isIn = false;

    // Use this for initialization
    void Start()
    {
        //修改的是世界坐标
        //Tweener t = rt.DOMove(Vector3.zero, 0.3f);
        //修改的是局部坐标(相对于画布而言)
        Tweener t = rt.DOLocalMove(Vector3.zero, 0.3f);
        //默认动画播放完成会自动销毁
        t.SetAutoKill(false);
        t.Pause();
    }

    public void OnClick()
    {
        if (!isIn)
        {
            //将开始该物体的所有Tweener
            rt.DOPlayForward();
        }
        else
        {
            rt.DOPlayBackwards();
        }
        isIn = !isIn;
    }
}

声明一个Tweener t 对象用于储存动画行为,以及一个bool类型的变量用于触发动画行为(包括正进和倒退),在Start()方法里除了储存动画行为,我们还要让动画在被调用播放后暂停动画播放以及销毁这次动画行为,防止内存不断扩大使用。


文本动画显示:

场景添加一个Text组件

给这个Text添加如下脚本:


using UnityEngine;
using System.Collections;
using DG.Tweening;
using UnityEngine.UI;
 
public class Test2 : MonoBehaviour {
 
    public Transform t;
    public Text text;//将Text组件赋给变量
 
	// Use this for initialization
	void Start () 
    {
        //Vector3.zero是绝对位置,表示从Vector3.zero移动到当前位置
        //t.DOMove(Vector3.zero, 2).From();
 
        //默认为false
        //Vector3.forward是相对位置(forward方向),表示从Vector3.forward加当前位置移动到当前位置
        t.DOMove(Vector3.forward, 2).From(true);
 
        //逐字显示
        text.DOText("祝热爱游戏制作的小伙伴快快乐乐的", 3);
	}
	
}

挂载好后,便能实现文本框逐字显示的效果。

posted @ 2021-11-07 13:01  hhhei!  阅读(127)  评论(0编辑  收藏  举报