【Unity3D】DoTween的用法

本文详细介绍了Unity3D中DOTween动画库的使用,包括坐标、旋转、缩放等多种属性的动画效果,以及序列化、回调函数和循环类型等高级特性。通过实例代码展示了如何创建和控制动画,如移动、旋转、颜色变化等,适用于游戏开发和UI交互中的动画需求。
​
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
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发财猫MoneyCat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值