u3d_插件DoTween:(05)動畫的前放和倒放

一、步驟
1.定義一個屬性    public bool isIn = false; // 判斷是否在屏幕當中(默認是false 不在屏幕當中) 判斷是否在屏幕當中
2.按鈕點擊判斷處理 isIn 的操作
3.DOLocalMove、DOMove這些方法會返回一個Tweener的對象,動畫結束之后會把這個對象銷毀
4.panelTransform.DOPlayBackwards();// 倒放
5.tweener.SetAutoKill(false); // 把autokill 自動銷毀設置 為 不自動銷毀
6.DOPlay(); // 動畫只會執行1次
7.DOPlayForward(); 和DOPlayBackwards();// 是成對的

二、code
MyButton腳本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class MyButton : MonoBehaviour {

// 屬性
    public RectTransform panelTransform; // image
    public bool isIn = false; // 判斷是否在屏幕當中(默認是false 不在屏幕當中)

// 方法
    // 代碼放到start里面 說明只會執行一次 , 
    void Start(){
        
        // 進入屏幕
        // DOMove 
        // 這個修改是世界坐標
        //      panelTransform.DOMove (new Vector3 (0, 0, 0), 1);// 讓paneltransform從當前位置 動畫到0,0,0 時間為1秒
        // 我們需要修改的是局部坐標
        Tweener tweener = panelTransform.DOLocalMove (new Vector3 (0, 0, 0), 0.3f);
        // DolcalMove 動畫 默認播放完會銷毀
        // tweener 對象保存這個動畫的信息 每次調用do類型的方法都會創建一個tweener對象,這個對象是dotween來管理的
        tweener.SetAutoKill(false); // 把autokill 自動銷毀設置 為 不自動銷毀
        tweener.Pause(); // 暫停
    }

    public void onclick (){

        if (isIn == false) {
//          panelTransform.DOPlay ();//只會播放一次
            panelTransform.DOPlayForward(); // 前放 跟DOPlayBackwards是成對的

            // 如果把start 中tweener這些操作放到這個,那么每次執行1次都會保留一個tweener對象,消耗性能
            isIn = true; // 設置為在屏幕中
        } else {
            // 讓panel離開屏幕
            panelTransform.DOPlayBackwards();// 倒放
            isIn = false; // 設置為不在屏幕中
        }

    }
}


動畫的前放盒倒放.gif
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容