DOTween

官方文档: http://dotween.demigiant.com/index.php

一些DOTween方法的介绍

安装插件后也可以在Add Component里添加DOTween Animation / Path两个组件来可视化地编辑

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 using DG.Tweening;      //DO类命名空间
 5 using UnityEngine.UI;
 6 
 7 public class GetStart : MonoBehaviour {
 8 
 9     public Camera mainCamera;
10     public Text text;
11     public RectTransform image2;
12     public Vector3 myValue = new Vector3(0, 0, 0);
13     public RectTransform imageTransform;
14     private bool isIN = false;
15 
16     // Use this for initialization
17     void Start () {
18 
19         //通过camera的移动来产生屏幕震动效果
20         mainCamera.DOShakePosition(2,new Vector3(2,2,0));
21 
22         //====================================================================================
23 
24         //Text动画
25         text.DOText("显示文字动画效果,时间2秒", 2);
26         text.DOColor(Color.red, 1);     //改变颜色
27         text.DOFade(0, 4);              //改变Alpha值
28 
29         //=====================================================================================
30 
31         //控制image2移动
32         Tweener tweener2 = image2.transform.DOLocalMoveX(0, 3);
33         //枚举类型,设置动画曲线类型
34         tweener2.SetEase(Ease.InBack);
35         //循环播放次数
36         tweener2.SetLoops(2);
37         //当动画播放完调用方法
38         tweener2.OnComplete(OnClick);
39 
40         //===============================================================================================
41 
42         //由于每次Click时都会创建这个动画并保存,因此放到Start方法下只执行一次
43         //DOLocalMove & DOMove是Dotween插件中的方法
44         Tweener tweener = imageTransform.DOLocalMove(new Vector3(0, 0, 0), 1, true);//动画放完会默认销毁
45         //创建一个Tweener对象来管理动画信息,每次调用DO类型方法都会创建一个tweener对象,这个对象由dotween来管理
46         tweener.SetAutoKill(false); //关闭自动销毁
47         tweener.Pause();    //暂停动画,一开始不播放
48 
49         //===========================================================================================================
50 
51         // lambda表达式
52         // () => myValue返回myValue值
53         // x => myValue = x把计算得到的插值赋给myValue
54         // new Vector3(10, 10, 10)目标值 
55         // 2是所花时间(秒)
56         DOTween.To(() => myValue, x => myValue = x, new Vector3(10, 10, 10), 2);
57 
58         //加上From()方法后相当于从目标位置Vector3(10, 10, 10)移动到原本的坐标位置
59         //From()方法默认为False,如果设置为From(true)则是相对距离
60         //例如原本坐标是(1,1,1),这里就是实际从(11,11,11)开始移动,一共移动了(10,10,10)的距离
61         DOTween.To(() => myValue, x => myValue = x, new Vector3(10, 10, 10), 2).From();
62 
63     }
64     
65     // Update is called once per frame
66     void Update () {
67         transform.position = myValue;
68     }
69 
70     //点击button后image移动与移出
71     public void OnClick()
72     {
73         if(!isIN)
74         {
75             //由于DoPlay()方法只会执行一次,因此用下面这种方法
76             imageTransform.DOPlayForward();     //前放动画
77             isIN = true;
78         }
79         else
80         {
81             imageTransform.DOPlayBackwards();     //倒放动画
82             isIN = false;
83         }
84 
85 
86         
87         
88     }
89 }
DOTween

猜你喜欢

转载自www.cnblogs.com/QQW123/p/9175335.html
今日推荐