推薦閱讀:
- 我的CSDN
- 我的博客園
- QQ群:704621321
- 我的個人博客
前言
以前做影片就是:這個影片XXX模塊里用到過,復制-粘貼;這個影片好像沒實作過,百度-復制-粘貼,今天,我終于下定決心自己學一下DOTween影片,DOTween影片作為眾多插件中的一員,成為大部分開發者使用的影片插件是有一定道理的,
安裝插件
簡單介紹一下DoTween插件的安裝,首先你需要下載該插件,你有兩種選擇:
1.你可以選擇去官網下載 ;
2.你可以通過我的網盤鏈接下載鏈接:
https://pan.baidu.com/s/1J6NjDIWzr56kmqR041o_eA 提取碼: htpa 復制這段內容后打開百度網盤手機App,操作更方便哦
接下來,打開你的Unity專案,雙擊運行上步驟下載的插件,匯入到工程,匯入新的DOTween更新后,您必須設定DOTween才能根據您的Unity版本匯入/重新匯入其他庫,
要設定DOTween,請從“Tools / Demigiant”選單中打開DOTween 工具面板,然后從出現的面板中選擇“Setup DOTween …”,


選擇setup后,你就安裝完成啦!
使用
使用DOTween,需在該類/腳本中加入如下參考:
using DG.Tweening;
一切準備就緒,下面開始介紹DOTween插件的一些常用功能,一起看看吧
1.命名前綴
DO: 動作操作前綴,例如:DoMove(),DoKill()等等,
Set:影片設定操作前綴,例如:SetLoop(),SetEase()等等,
On: 回應回呼事件前綴,例如: OnStart(),OnComplete()等等,
例:將向量(0,0,0)插值漸變到(10,10,0)漸變速度是由快變慢
DO
public Vector3 value = new Vector3(0, 0, 0);
private void Start()
{
//() => value表示回傳獲取value值
//x => value = x,x是通過目標值計算出來的插值,賦值給value
//new Vector3(10, 10, 0)是目標值
//2是到達目標值的時間
DOTween.To(() => value, x => value = x, new Vector3(10, 10, 0),2);
}
說明:
DOMove() 修改的是物體的世界坐標 ; DOLocalMove()修改的是物體的區域坐標
DOMoveX()只在X軸方向上移動
DOText() 文字列印效果
text.DOText("關注微信公眾號:愛上游戲開發", 2);

DOColor()修改顏色
text.DOColor(Color.red, 2);

DOFade()透明度漸變
text.DOFade(1, 2);
DOShakePosition() 震動效果
Camera.main.transform.DOShakePosition(1, 0.5f);
From Tweens
//加上from()方法,默認false,表示從目標位置移動到當前位置
//如果為true,表示相對距離,例如cube當前位置為(2,0,0),則目標位置為(2+5,0,0)
cube.transform.DOMoveX(5, 1).From();
Set
SetEase()設定影片曲線,點擊這里,體驗不同影片曲線效果,
//物體先向后一點,再向前播放
SetEase(Ease.InBack);
SetLoops()設定回圈播放次數
cube.transform.DOMoveX(5, 1).SetEase(Ease.InCubic).SetLoops(2);
On
OnComplete()當影片結束時運行的事件函式
cube.transform.DOMoveX(5, 1).OnComplete(() => { Debug.Log("End"); });
OnStart()當影片第一次運行時的事件函式
cube.transform.DOMoveX(5, 1).OnStart(() => { Debug.Log("Start"); });
Sequence
Sequence:相當于一個Tweener的鏈表,可以通過執行一個Sequence來執行一串Tweener,使用Sequence類可以方便的組織Tweens來制作復雜的過渡影片,
Append(Tween tween):在Sequence的最后添加一個tween,
AppendCallback(TweenCallback callback):在Sequence的最后添加一個回呼函式,
AppendInterval(float interval):在Sequence的最后添加一段時間間隔,
Insert(float atPosition, Tween tween):在給定的時間位置上放置一個tween,可以實作同時播放多個tween的效果,而不是一個接著一個播放,
InsertCallback(float atPosition, TweenCallback callback): 在給定的時間位置上放置一個回呼函式,
Join(Tween tween):在Sequence的最后一個tween的開始處放置一個tween,
Prepend(Tween tween):在Sequence開始處插入一個tween,原先的內容根據時間往后移,
PrependCallback(TweenCallback callback): 在Sequence開始處插入一個回呼函式,
PrependInterval(float interval) :在Sequence開始處插入一段時間間隔,原先的內容根據時間往后移,
例子
最后,通過一個簡單常用的例子,給大家演示一下使用DOTween實作數字滾動影片效果,
//-------------------------------
//-------------------------------
// @data2020.10.13
// @autor:愛上游戲開發
// DOTween實作數字滾動影片效果
//-------------------------------
//-------------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using DG.Tweening;
public class test : MonoBehaviour
{
public Text text;
private Sequence mScoreSequence;
private int mOldScore = 0;
private int newScore = 0;
void Awake()
{
mScoreSequence = DOTween.Sequence();
mScoreSequence.SetAutoKill(false);
}
void Start()
{
}
void DigitalAnimation() {
mScoreSequence.Append(DOTween.To(delegate (float value) {
var temp = Math.Floor(value);
text.text = temp + "";
}, mOldScore, newScore, 0.4f));
mOldScore = newScore;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
newScore += 1024;
DigitalAnimation();
}
}
}
效果如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/171638.html
標籤:其他
