DoTween用法教程

简介: DoTween用法攻略本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、...

DoTween用法攻略


本文提供全流程,中文翻译。

Chinar 坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)


Chinar —— 心分享、心创新!

助力快速理解 DoTween 的使用和效果理解

为新手节省宝贵的时间,避免采坑!


Chinar 教程效果:
这里写图片描述



1

Change Variate - - - - 改变变量

举个栗子黑白88

using UnityEngine;
using DG.Tweening;//引用命名空间

public class NewStart : MonoBehaviour
{
    public Vector3 NewVector3=new Vector3(0,0,0);//声明一个Vector3的变量

    void Start()
    {
        //把一个三维变量做一个插值,渐渐变换到某个值new Vector3(10, 10, 10),经过3秒
        //表达式:() => NewVector3, x => NewVector3 = x
        DOTween.To(() => NewVector3, x => NewVector3 = x, new Vector3(10, 10, 10), 3);
    }
}

2

Transform - - - - 位置信息

任务栏 - 弹出(老方法)

举个栗子黑白88

using UnityEngine;
using DG.Tweening;//引用命名空间



/// <summary>
/// 测试脚本的类
/// </summary>
public class NewStart : MonoBehaviour
{
    public Transform DiamondTransform;//方块位置信息

    public RectTransform WorkRectTransform;//任务面板

    public Vector3 NewVector3=new Vector3(0,0,0);//声明一个Vector3的变量

    void Start()
    {
        //把一个三维变量做一个插值,渐渐变换到某个值new Vector3(10, 10, 10),经过3秒
        //表达式:() => NewVector3, x => NewVector3 = x
        DOTween.To(() => NewVector3, x => NewVector3 = x, new Vector3(0, 0, 0), 2);
    }

    void Update()
    {
        //DiamondTransform.position = NewVector3;

        WorkRectTransform.localPosition = NewVector3;
    }
}

效果:

这里写图片描述


3

Taskbar - - - - 前进-回退

任务栏 - 弹出 / 收回
举个栗子黑白88

using UnityEngine;
using DG.Tweening;//引用命名空间
using UnityEngine.UI;//引用UI



/// <summary>
/// 测试脚本——任务栏
/// </summary>
public class TestWork : MonoBehaviour
{
    public RectTransform MissionRectTransform;//任务栏坐标 

    private bool _isin = false;//默认为false,没有在屏幕当中



    /// <summary>
    /// 唤醒函数
    /// </summary>
    void Awake()
    {
        MissionRectTransform = GameObject.Find("MovePanel").GetComponent<RectTransform>();//获取任务栏的位置信息

        Button button = GameObject.Find("Button").GetComponent<Button>();//获取按钮

        button.onClick.AddListener(OnClick);//动态绑定按钮事件
    }



    /// <summary>
    /// 初始化函数
    /// </summary>
    void Start()
    {
        ChangeTweener();//调用控制动画的方法
    }



    /// <summary>
    /// 按钮事件
    /// </summary>
    public void OnClick()
    {
        if (_isin==false)
        {
            MissionRectTransform.DOPlayForward();//前进;

            _isin = true;//标示,进入
        }
        else
        {
            MissionRectTransform.DOPlayBackwards();//回退

            _isin = false;//标示,退出
        }
    }


    /// <summary>
    /// 控制动画的方法
    /// </summary>
    private void ChangeTweener()
    {
        //移动到(0,0,0)  经过0.3秒
        //MissionRectTransform.DOMove(new Vector3(0, 0, 0),0.3f);//(修改世界坐标)

        //每次调用do类型的方法,都会返回一个Tweener对象,用来保存动画信息。这个对象是DoTween来管理的
        //默认播放完后,动画被销毁
        Tweener tweener = MissionRectTransform.DOLocalMove(new Vector3(0, 0, 0), 0.3f);//(修改自身坐标)

        tweener.SetAutoKill(false);//自动销毁,设置为关闭

        tweener.Pause();//暂停动画
    }
}

效果:

这里写图片描述


4

From Tween - - - - From()用法

方法后跟 .From(),是目标位置 —— 到物体 Inspector(检查员) 面板上的当前位置

方法后跟 .From(true),是目标位置+物体偏移量 —— 到物体 Inspector 面板上的当前位置


5

Control Animation Curve - - - -控制动画曲线

Ease —— 减缓

Bounce —— 弹力

loops —— 循环

Complete —— 完成

举个栗子黑白88

using UnityEngine;
using DG.Tweening;//引用DoTween空间



/// <summary>
/// 测试脚本——控制动画曲线
/// </summary>
public class TestShit : MonoBehaviour
{

    /// <summary>
    /// 初始化函数
    /// </summary>
    void Start()
    {
        Tweener tweener= transform.DOLocalMove(new Vector3(0, 0, 0), 2);//设置移动到目标位置,2秒

        //tweener.SetEase(Ease.InBack);//设置动画曲线 —— 先回弹,再到达目标

        //tweener.SetEase(Ease.InBounce);//设置动画曲线 —— 先弹2下,再到达目标

        tweener.SetEase(Ease.OutBounce);//设置动画曲线 —— 先到目标,再弹2下

        tweener.SetLoops(2);//设置动画-循环次数

        tweener.OnComplete(OnTweenFunction);//监听事件 —— 动画执行完成,执行事件函数 OnTweenFunction()
    }



    /// <summary>
    /// 调用函数
    /// </summary>
    public void OnTweenFunction()
    {
        print("动画执行完毕");
    }
}

效果:

这里写图片描述


6

Animate Text - - - -文本动画

文本摘自《魁拔》 —— 强推!走心的国产动画!句句经典!

举个栗子黑白88

using UnityEngine;
using UnityEngine.UI;//引用UI命名空间
using DG.Tweening;//引用DoTween命名空间



/// <summary>
/// 测试脚本 —— 测试文本动画
/// </summary>
public class TestText : MonoBehaviour
{
    private Text _text;//声明一个文本框



    /// <summary>
    /// 初始化函数
    /// </summary>
    void Start()
    {
        _text = GetComponent<Text>();//获取当前物体的Text组件

        //(文本,持续时间8秒)
        _text.DOText("我的小鱼,你醒了\n还记得早晨吗?\n昨夜你曾经说,愿夜幕永不开启\n初吻吻别的那个季节,不是已经哭过了吗?\n你的香腮边轻轻滑落的,是你的泪,还是我的泪\n我的指尖还记忆着\n你慌乱的心跳\n温润的体香里那一缕长发飘飘。", 8);
    }
}

效果:
文本动画GIF


7

Shake - - - 震动

调用 DoTween 内部方法 DOShake,就可以直接达到震动效果()里边是参数

举个栗子黑白88

using UnityEngine;
using DG.Tweening;//引用命名空间



/// <summary>
/// 测试脚本 —— 震动效果
/// </summary>
public class TestShakeScreen : MonoBehaviour
{
    /// <summary>
    /// 初始化函数
    /// </summary>
    void Start()
    {
        transform.DOShakePosition(4, new Vector3(3, 3, 3));//震动位置(持续时间4秒,震动偏移量)

        transform.DOShakeScale(4);//震动比例(持续时间4秒)

        transform.DOShakeRotation(2,new Vector3(66,66,66));//震动旋转(持续时间2秒,震动角度偏移量)
    }
}

效果:
这里写图片描述


支持

May Be —— 搞开发,总有一天要做的事!


拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!


先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


1 —— 云服务器超全购买流程 (新手必备!)

2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

3—— Windows 服务器配置、运行、建站一条龙 !

4 —— Linux 服务器配置、运行、建站一条龙 !





技术交流群:806091680 ! Chinar 欢迎你的加入


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

相关文章
|
JSON 人工智能 Serverless
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
通过阿里云函数计算FC 和文件存储NAS,用户体验 ComfyUI 和预置工作流文件,用户可以快速生成毛茸茸萌宠等高质量图像。
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
|
图形学
Unity UGUI拖拽移动
本文介绍了两种UI拖拽实现方式:精准拖拽和克隆拖拽。精准拖拽通过计算鼠标点击点与UI中心的偏移量,使UI跟随鼠标移动,适用于需要精确控制的场景。代码中通过`IBeginDragHandler`、`IDragHandler`和`IEndDragHandler`接口实现拖拽逻辑。克隆拖拽则在拖拽时克隆一个UI对象,使其跟随鼠标移动,适合视觉效果需求较高的场景。代码中同样使用上述接口,并在拖拽结束时销毁克隆对象。具体实现可参考提供的代码示例。
536 10
|
数据可视化 API 索引
DOTween教程☀️DOTween的使用教程
DOTween教程☀️DOTween的使用教程
|
前端开发 测试技术 定位技术
【专栏:HTML 与 CSS 实战项目篇】构建一个企业级网站:HTML 与 CSS 实战
【4月更文挑战第30天】本文介绍了使用HTML和CSS构建企业级网站的实战步骤,包括项目概述、页面结构设计、HTML结构搭建、CSS样式设计、具体页面实现、优化与提升。通过合理布局、美观样式和响应式设计,创建现代、简洁的网站,包含主页、关于我们、产品展示、新闻动态和联系我们等页面。优化图片和代码,确保性能,助力企业在数字时代树立良好形象并提升沟通效率。
621 7
|
消息中间件 Kafka RocketMQ
业界主流MQ对比
根据之前的学习和沉淀,本期我们总结了几款业界主流消息中间件产品的对比报告。
26547 131
|
机器学习/深度学习 人工智能 算法
强化学习:实现自主决策的机器学习范 paradigm
强化学习作为实现自主决策的机器学习范 paradigm,在人工智能领域具有重要地位。通过与环境的交互学习,智能体能够逐步优化决策策略,从而在各种任务中表现出色。强化学习在游戏、机器人控制、自动驾驶等领域的应用案例充分证明了其潜力。未来,随着技术的进一步发展,强化学习将在更多领域带来创新和突破。
1162 1
|
机器学习/深度学习 存储 Python
【ML】机器学习数据集:sklearn中回归数据集介绍
在机器学习的教程中,我们会看到很多的demo,这些demo都是基于python中自带的数据集。今天我们将介绍三个用于回归预测的数据集。
【ML】机器学习数据集:sklearn中回归数据集介绍
|
小程序 开发者
如何实现一个好看的金币效果
如图,是我最新上线的游戏【彩虹星球大冒险】中的金币拾取效果,打金币作为这个游戏中的一个非常重要的体验,把金币拾取效果做的好看就显得尤为重要。今天就跟大家分享一个,如何实现一个这样好看的金币拾取效果。 观察一下上面的动图,金币从出现到消失总共是分为两个过程的。 金币从爆炸的物体中向上弹出,并进行旋转下落 玩家碰到金币后,金币放大旋转然后飞到屏幕的左上角记录金币的位置后消失 接下来我们以一个具体的实例,来逐步的实现整个金币效果。
551 0
如何实现一个好看的金币效果
|
Python
python小游戏——塔防小游戏代码开源
python小游戏——塔防小游戏代码开源
727 0
python小游戏——塔防小游戏代码开源