天天看點

DoTween用法教程1234567支援

DoTween用法攻略

本文提供全流程,中文翻譯。

Chinar 堅持将簡單的生活方式,帶給世人!

(擁有更好的閱讀體驗 —— 高分辨率使用者請根據需求調整網頁縮放比例)

Chinar —— 心分享、心創新!

助力快速了解 DoTween 的使用和效果了解

為新手節省寶貴的時間,避免采坑!

Chinar 教程效果:

using UnityEngine;
using DG.Tweening;//引用命名空間

public class NewStart : MonoBehaviour
{
    public Vector3 NewVector3=new Vector3(0,0,0);//聲明一個Vector3的變量

    void Start()
    {
        //把一個三維變量做一個插值,漸漸變換到某個值new Vector3(10, 10, 10),經過3秒
        //表達式:() => NewVector3, x => NewVector3 = x
        DOTween.To(() => NewVector3, x => NewVector3 = x, new Vector3(10, 10, 10), 3);
    }
}           

工作列 - 彈出(老方法)

using UnityEngine;
using DG.Tweening;//引用命名空間



/// <summary>
/// 測試腳本的類
/// </summary>
public class NewStart : MonoBehaviour
{
    public Transform DiamondTransform;//方塊位置資訊

    public RectTransform WorkRectTransform;//任務面闆

    public Vector3 NewVector3=new Vector3(0,0,0);//聲明一個Vector3的變量

    void Start()
    {
        //把一個三維變量做一個插值,漸漸變換到某個值new Vector3(10, 10, 10),經過3秒
        //表達式:() => NewVector3, x => NewVector3 = x
        DOTween.To(() => NewVector3, x => NewVector3 = x, new Vector3(0, 0, 0), 2);
    }

    void Update()
    {
        //DiamondTransform.position = NewVector3;

        WorkRectTransform.localPosition = NewVector3;
    }
}           

效果:

工作列 - 彈出 / 收回

using UnityEngine;
using DG.Tweening;//引用命名空間
using UnityEngine.UI;//引用UI



/// <summary>
/// 測試腳本——工作列
/// </summary>
public class TestWork : MonoBehaviour
{
    public RectTransform MissionRectTransform;//工作列坐标 

    private bool _isin = false;//預設為false,沒有在螢幕當中



    /// <summary>
    /// 喚醒函數
    /// </summary>
    void Awake()
    {
        MissionRectTransform = GameObject.Find("MovePanel").GetComponent<RectTransform>();//擷取工作列的位置資訊

        Button button = GameObject.Find("Button").GetComponent<Button>();//擷取按鈕

        button.onClick.AddListener(OnClick);//動态綁定按鈕事件
    }



    /// <summary>
    /// 初始化函數
    /// </summary>
    void Start()
    {
        ChangeTweener();//調用控制動畫的方法
    }



    /// <summary>
    /// 按鈕事件
    /// </summary>
    public void OnClick()
    {
        if (_isin==false)
        {
            MissionRectTransform.DOPlayForward();//前進;

            _isin = true;//标示,進入
        }
        else
        {
            MissionRectTransform.DOPlayBackwards();//回退

            _isin = false;//标示,退出
        }
    }


    /// <summary>
    /// 控制動畫的方法
    /// </summary>
    private void ChangeTweener()
    {
        //移動到(0,0,0)  經過0.3秒
        //MissionRectTransform.DOMove(new Vector3(0, 0, 0),0.3f);//(修改世界坐标)

        //每次調用do類型的方法,都會傳回一個Tweener對象,用來儲存動畫資訊。這個對象是DoTween來管理的
        //預設播放完後,動畫被銷毀
        Tweener tweener = MissionRectTransform.DOLocalMove(new Vector3(0, 0, 0), 0.3f);//(修改自身坐标)

        tweener.SetAutoKill(false);//自動銷毀,設定為關閉

        tweener.Pause();//暫停動畫
    }
}           

方法後跟 .From(),是目标位置 —— 到物體 Inspector(檢查員) 面闆上的目前位置

方法後跟 .From(true),是目标位置+物體偏移量 —— 到物體 Inspector 面闆上的目前位置

Ease —— 減緩

Bounce —— 彈力

loops —— 循環

Complete —— 完成

using UnityEngine;
using DG.Tweening;//引用DoTween空間



/// <summary>
/// 測試腳本——控制動畫曲線
/// </summary>
public class TestShit : MonoBehaviour
{

    /// <summary>
    /// 初始化函數
    /// </summary>
    void Start()
    {
        Tweener tweener= transform.DOLocalMove(new Vector3(0, 0, 0), 2);//設定移動到目标位置,2秒

        //tweener.SetEase(Ease.InBack);//設定動畫曲線 —— 先回彈,再到達目标

        //tweener.SetEase(Ease.InBounce);//設定動畫曲線 —— 先彈2下,再到達目标

        tweener.SetEase(Ease.OutBounce);//設定動畫曲線 —— 先到目标,再彈2下

        tweener.SetLoops(2);//設定動畫-循環次數

        tweener.OnComplete(OnTweenFunction);//監聽事件 —— 動畫執行完成,執行事件函數 OnTweenFunction()
    }



    /// <summary>
    /// 調用函數
    /// </summary>
    public void OnTweenFunction()
    {
        print("動畫執行完畢");
    }
}           

文本摘自《魁拔》 —— 強推!走心的國産動畫!句句經典!

using UnityEngine;
using UnityEngine.UI;//引用UI命名空間
using DG.Tweening;//引用DoTween命名空間



/// <summary>
/// 測試腳本 —— 測試文本動畫
/// </summary>
public class TestText : MonoBehaviour
{
    private Text _text;//聲明一個文本框



    /// <summary>
    /// 初始化函數
    /// </summary>
    void Start()
    {
        _text = GetComponent<Text>();//擷取目前物體的Text元件

        //(文本,持續時間8秒)
        _text.DOText("我的小魚,你醒了\n還記得早晨嗎?\n昨夜你曾經說,願夜幕永不開啟\n初吻吻别的那個季節,不是已經哭過了嗎?\n你的香腮邊輕輕滑落的,是你的淚,還是我的淚\n我的指尖還記憶着\n你慌亂的心跳\n溫潤的體香裡那一縷長發飄飄。", 8);
    }
}           

調用 DoTween 内部方法 DOShake,就可以直接達到震動效果()裡邊是參數

using UnityEngine;
using DG.Tweening;//引用命名空間



/// <summary>
/// 測試腳本 —— 震動效果
/// </summary>
public class TestShakeScreen : MonoBehaviour
{
    /// <summary>
    /// 初始化函數
    /// </summary>
    void Start()
    {
        transform.DOShakePosition(4, new Vector3(3, 3, 3));//震動位置(持續時間4秒,震動偏移量)

        transform.DOShakeScale(4);//震動比例(持續時間4秒)

        transform.DOShakeRotation(2,new Vector3(66,66,66));//震動旋轉(持續時間2秒,震動角度偏移量)
    }
}           

擁有自己的伺服器,無需再找攻略!

Chinar 提供一站式教程,閉眼式建立!

為新手節省寶貴時間,避免采坑!

先點選領取 —— 阿裡全産品優惠券 (享受最低優惠)

1 ——

雲伺服器超全購買流程 (新手必備!)

2 ——

阿裡ECS雲伺服器自定義配置 - 購買教程(新手必備!)

3——

Windows 伺服器配置、運作、建站一條龍 !

4 ——

Linux 伺服器配置、運作、建站一條龍 !

技術交流群:806091680 ! Chinar 歡迎你的加入

END

本部落格為非營利性個人原創,除部分有明确署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究

對于需要複制、轉載、連結和傳播部落格文章或内容的,請及時和本部落客進行聯系,留言,Email: [email protected]

對于經本部落客明确授權和許可使用文章及内容的,使用時請注明文章或内容出處并注明網址

繼續閱讀