游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

教程分享

关注:786

当前位置:游戏蛮牛 技术专区 教程分享

查看: 868|回复: 11

[实例教程] 转一贴DOTween的基础使用方法

[复制链接]  [移动端链接]
7日久生情
3101/5000
排名
367
昨日变化
1

17

主题

277

帖子

3101

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
10276
好友
0
蛮牛币
6176
威望
0
注册时间
2013-12-14
在线时间
1187 小时
最后登录
2018-9-21
发表于 2018-1-7 19:56:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 kukushaoye 于 2018-1-7 19:58 编辑

[C#] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;
using DG.Tweening;
using UnityEngine.UI;


public class TestDoTween : MonoBehaviour {

    int number = 0;
    // Use this for initialization
    void Start ()
    {
        //FunctionOne();
        //FunctionTwo();
        //FunctionSequence();
        FunctionSet();
    }

    // 创建 DOTween 实例 方法
    #region 方法一 类方法
    private void FunctionOne()
    {
        // 创建一个 Tweener 是自身坐标 一秒内 移动到  坐标 Vector3(5, 5, 5) 位置
        Tween tween = DOTween.To(() => transform.position, r => transform.position = r, new Vector3(5, 5, 5), 1);

        // 创建一个 Tweener 对象, 另 number的值在 5 秒内变化到 100
        Tween t = DOTween.To(() => number, x => number = x, 100, 5);
        // 给执行 t 变化时,每帧回调一次 UpdateTween 方法
        t.OnUpdate( () => UpdateTween(number));  
    }

    private void UpdateTween(int num)
    {
        Debug.Log(num);      // 变化过程中, 每帧回调该方法
    }

    #endregion

    #region 方法二  直接调用

    private void FunctionTwo()
    {
        //十秒内X,Y,Z 局部坐标(localPosition)移动到  10,10,10 位置
        //transform.DOBlendableLocalMoveBy(new Vector3(10, 10, 10), 10);

        //十秒内 X,Y,Z 方向的局部旋转(localPosition),转动到 30,30,30
        //transform.DOBlendableLocalRotateBy(new Vector3(30, 30, 30), 10);

        //十秒内X,Y,Z坐标移动到 自身坐标 加 new Vector3( 10,10,10) 位置 原始 坐标 3,3,3,移动后 13,13,13
        //transform.DOBlendableMoveBy(new Vector3(10, 10, 10), 10);

        //十秒内X,Y,Z自身旋转到 30,30,30(有父物体的相对于父物体)
        //transform.DOBlendableRotateBy(new Vector3(30, 30, 30), 10);

        //十秒内 自身X,Y,Z方向的比例 加 3,3,3如原始比例 2,1,1 变化后5,4,4
        //transform.DOBlendableScaleBy(new Vector3(10, 10, 10), 10);

        //执行该方法,变化立即结束,且完成移动
        //transform.DOComplete();

        //在变化过程中执行该方法,则物体慢慢的变回原样,如果变化已经完成,该方法无效
        //transform.DOFlip();

        // 变化过程中执行该方法,则物体变化到 第二秒 时该物体的位置、比例等
        //transform.DOGoto(2);

        //十秒内 弹跳 3次
        //transform.DOJump(new Vector3(10, 10, 10), 3, 10);

        //停止掉当前的变化
        //transform.DOKill();

        // 十秒内 弹跳 3次, 局部坐标最终变化为  10, 0, 10
        //transform.DOLocalJump(new Vector3(10, 10, 10), 3, 10);

        // 5 秒内, 局部坐标变化到  10,10,10
        //transform.DOLocalMove(new Vector3(10, 10, 10), 5);

        // 10 秒内 X 局部坐标变换到 5
        //transform.DOLocalMoveX(5, 10);

        // 10 秒内 Y 局部坐标变化到 5
        //transform.DOLocalMoveY(5, 10);

        //10 秒内 Z 局部坐标变化到 5
        //transform.DOLocalMoveZ(5, 10);

        //transform.DOLocalPath();

        //5 秒内 局部旋转变化到  10,10, 10
        //transform.DOLocalRotate(new Vector3(10, 10, 10), 5);

        // 自身朝向 坐标(10,10,10)
        //transform.DOLookAt(new Vector3(10, 10, 10), 5);

        // 5 秒内 移动到 坐标 (10,10,10)
        //transform.DOMove(new Vector3(10, 10, 10), 5);

        //10 秒内 X 局部坐标变化到 5
        //transform.DOMoveX(5, 10);

        //10 秒内 Y 局部坐标变化到 5
        //transform.DOMoveY(5, 10);

        //10 秒内 Z 局部坐标变化到 5
        //transform.DOMoveZ(5, 10);

        //
        //transform.DOPath();

        //执行该方法停止 变化
        //transform.DOPause();

        //transform.DOPlay();

        //变化结束前调用该方法,物体回到原始位置
        //transform.DOPlayBackwards();

        //执行 transform.DOPlayBackwards(); 物体回到原始位置
        //执行 下面方法则再次变化
        //transform.DOPlayForward();

        //冲压机,在 5 秒内在原始坐标和下面坐标之间,来回冲压
        //transform.DOPunchPosition(new Vector3(10, 10, 10), 5);

        //冲压机,在 5 秒内在原始旋转和下面角度之间,来回冲压变化
        //transform.DOPunchRotation(new Vector3(50, 50, 50), 5);

        //冲压机,在 5 秒内在原始比例和下面比例之间,来回冲压变化
        //transform.DOPunchScale(new Vector3(5, 5, 5), 5);

        //在变化结束之前,执行该方法,则重新开始变化
        //transform.DORestart();

        //变化过程中执行该方法,回到原始
        //transform.DORewind();

        // 10 秒内 旋转角度 到  (50,50,50)
        //transform.DORotate(new Vector3(50, 50, 50), 5);

        // 10 秒内 比例变化到  (5,5,5)
        //transform.DOScale(new Vector3(5, 5, 5), 5);

        // 10 秒内 X 比例变化到 5 
        //transform.DOScaleX(5, 10);

        // 10 秒内 Y 比例变化到 5 
        //transform.DOScaleY(5, 10);

        // 10 秒内 Z 比例变化到 5 
        //transform.DOScaleZ(5, 10);

        // 10 秒内 物体 X,Y,Z 坐标在   自身-5 到 自身加 5 之间震动
        //transform.DOShakePosition(10, new Vector3(10, 10, 10));

        // 10 秒内, 物体 X,Y,Z 旋转角度在 自身-5 到 自身加 5 之间震动
        //transform.DOShakeRotation(10, new Vector3(10, 10, 10));

        // 10 秒内, 物体 X,Y,Z 比例在 自身-5 到 自身加 5 之间震动
        //transform.DOShakeScale(10, new Vector3(10, 10, 10));

        //在变化过程中执行该方法,停止、开始、停止、开始
        //transform.DOTogglePause();

        // 执行该方法,坐标立即变化为 0,5,0, 从 0,5,0 两秒移动到初始位置
        //transform.DOMove(new Vector3(0, 5, 0), 2).From();

        // 执行该方法,移动到相对于原始位置 6,0,2 的位置
        // 如原始位置 3,2,1。 移动后位置为 3+6,2+0,2+2 即 9,2,4
        //transform.DOMove(new Vector3(6, 0, 2), 2).SetRelative();
    }

    #endregion


    #region DOTween回调方法  以 On 开头

    private void CallBack()
    {
        // 创建一个 Tweener 对象, 另 number的值在 5 秒内变化到 100
        Tween t = DOTween.To(() => number, x => number = x, 100, 5);

        // DOTween 可以连续调用 N 次方法如下
        // 执行变化的过程中可以回调的方法
        // 下面是不带参数的回调方法
        t.OnStart(OnStartTween).OnKill(OnKill).OnPause(OnPause).OnPlay(OnPlay).OnRewind(OnRewind);
        t.OnStepComplete(OnStepComplete).OnUpdate(UpdateTweenEd).OnComplete(OnComplete);


        // 带参数的回调方法如下
        t.OnUpdate(() => UpdateTweenED(number));
    }

    private void UpdateTweenED(int num)
    {
        Debug.Log("num   " + num);
    }

    private void OnComplete()
    {
        Debug.Log("OnComplete"); // 完成变化时回调
    }

    private void OnKill()
    {
        Debug.Log("OnKill");   // 执行结束后自动杀死,回调一次
    }

    private void OnPlay()
    {
        Debug.Log("OnPlay");   // 开始执行调用一次, 该方法在 OnStart 方法后调用
    }

    private void OnPause()
    {
        Debug.Log("OnPause");  // 暂停回调
    }

    private void OnRewind()
    {
        Debug.Log("OnRewind");   //倒回回调
    }

    private void OnStartTween()
    {
        Debug.Log("StartTween"); // 开始执行最先回调, 该方法在 OnPlay 方法前调用
    }

    private void OnStepComplete()
    {
        Debug.Log("OnStepComplete");  // 如果循环的,每循环完成调用一次。 不是循环的则完成执行
    }

    private void UpdateTweenEd()
    {
        Debug.Log(number);      // 变化过程中, 每帧回调该方法
    }

    private void 

回复

使用道具 举报

4四处流浪
406/500
排名
6009
昨日变化
40

0

主题

50

帖子

406

积分

Rank: 4

UID
255678
好友
1
蛮牛币
330
威望
0
注册时间
2017-11-22
在线时间
144 小时
最后登录
2018-9-21
发表于 2018-1-8 09:46:11 | 显示全部楼层
感谢分享

回复

使用道具 举报

3偶尔光临
256/300
排名
8448
昨日变化
2

2

主题

54

帖子

256

积分

Rank: 3Rank: 3Rank: 3

UID
242916
好友
0
蛮牛币
171
威望
0
注册时间
2017-9-12
在线时间
68 小时
最后登录
2018-8-4
发表于 2018-1-8 16:23:18 | 显示全部楼层
111111111111111111111

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1016/1500
排名
3369
昨日变化
3

1

主题

371

帖子

1016

积分

Rank: 6Rank: 6Rank: 6

UID
122160
好友
1
蛮牛币
1669
威望
0
注册时间
2015-9-10
在线时间
236 小时
最后登录
2018-8-1
发表于 2018-1-9 09:28:26 | 显示全部楼层
感谢分享

回复

使用道具 举报

7日久生情
2625/5000
排名
3274
昨日变化
15

2

主题

1812

帖子

2625

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
241666
好友
0
蛮牛币
10182
威望
0
注册时间
2017-9-6
在线时间
387 小时
最后登录
2018-9-21
发表于 2018-1-11 08:04:11 来自Mobile--- | 显示全部楼层
感谢分享

回复

使用道具 举报

4四处流浪
410/500
排名
12806
昨日变化
14

3

主题

144

帖子

410

积分

Rank: 4

UID
216830
好友
2
蛮牛币
298
威望
0
注册时间
2017-4-9
在线时间
202 小时
最后登录
2018-9-21
发表于 2018-1-16 09:58:53 | 显示全部楼层
谢谢分享

回复

使用道具 举报

7日久生情
1586/5000
排名
1171
昨日变化
2

0

主题

194

帖子

1586

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
148134
好友
0
蛮牛币
2586
威望
0
注册时间
2016-5-10
在线时间
456 小时
最后登录
2018-5-11
QQ
发表于 2018-1-23 11:33:02 | 显示全部楼层
感谢分享

回复

使用道具 举报

5熟悉之中
729/1000
排名
5300
昨日变化
1

3

主题

230

帖子

729

积分

Rank: 5Rank: 5

UID
243817
好友
1
蛮牛币
572
威望
0
注册时间
2017-9-16
在线时间
248 小时
最后登录
2018-9-20
发表于 2018-1-29 09:32:17 | 显示全部楼层
感谢分享

回复

使用道具 举报

5熟悉之中
729/1000
排名
5300
昨日变化
1

3

主题

230

帖子

729

积分

Rank: 5Rank: 5

UID
243817
好友
1
蛮牛币
572
威望
0
注册时间
2017-9-16
在线时间
248 小时
最后登录
2018-9-20
发表于 2018-3-2 11:30:19 | 显示全部楼层
感谢分享

回复

使用道具 举报

3偶尔光临
245/300
排名
8828
昨日变化
4

0

主题

42

帖子

245

积分

Rank: 3Rank: 3Rank: 3

UID
251420
好友
0
蛮牛币
425
威望
0
注册时间
2017-10-29
在线时间
81 小时
最后登录
2018-9-14
发表于 2018-3-14 09:40:33 | 显示全部楼层
dyiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

回复 支持 反对

使用道具 举报

7日久生情
1586/5000
排名
1171
昨日变化
2

0

主题

194

帖子

1586

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
148134
好友
0
蛮牛币
2586
威望
0
注册时间
2016-5-10
在线时间
456 小时
最后登录
2018-5-11
QQ
发表于 2018-3-15 15:57:57 | 显示全部楼层
感谢分享
[发帖际遇]: 一个袋子砸在了 harytian 头上,harytian 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
807/1000
排名
4155
昨日变化
19

10

主题

199

帖子

807

积分

Rank: 5Rank: 5

UID
208404
好友
0
蛮牛币
3747
威望
0
注册时间
2017-2-24
在线时间
262 小时
最后登录
2018-9-21
发表于 2018-5-24 10:03:49 | 显示全部楼层
感谢分享

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表