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]
對于經本部落客明确授權和許可使用文章及内容的,使用時請注明文章或内容出處并注明網址