首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【unity3D】DoTween动画插件(上)

  • 23-09-15 20:43
  • 4570
  • 5089
blog.csdn.net

? 未来的游戏开发程序媛,现在的努力学习菜鸡
?本专栏是我关于游戏开发的学习笔记
?本篇是unity的DoTween动画插件

DoTween动画插件(上)

    • 基础知识
    • 一些常用方法
      • DOMove和DoLocalMove
      • from Terrns
      • DOText打字机效果
      • DOShakePosition实现震动效果
      • DOColor颜色和透明度变化
      • twenner.SetEase(Ease.某种运动曲线)
      • twenner.SetLoops(次数)
      • twenner.OnComplete(一个方法)

基础知识

DOTween是一个用于Unity的快速、高效、完全类型安全的面向对象动画引擎
官网地址:http://iyenn.com/index/link?url=http://dotween.demigiant.com/getstarted.php

在这里插入图片描述


一些常用方法

DOMove和DoLocalMove

实现物体的移动,世界坐标和局部坐标,UI的RectTransform坐标的改变,就可以使用LocalMove。

下面是一个小案例:点击按钮,图片UI从屏幕外面,移动到屏幕中央

实现点击按钮,移动到相应位置,但是是一次性的方法,图片到达固定位置,该方法即失效。

    public Transform imageTransform;//图片的位置信息
    public void OnClick()
    {
        //点击按钮,图片用时3秒移动到0,0,0的位置
        imageTransform.DOLocalMove(new Vector3(0, 0, 0), 3);
        //默认动画播放完会被销毁
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

实现点击按钮,图片移动到想应位置,再次点击,则图片返回,并且可以一直使用。

//示例代码
    public Transform imageTransform;//图片的位置信息
    public bool isIn = false;//图片是否在屏幕里
    private void Start()
    {
        //使用tweener对象保存这个动画的信息,每次调用do类型的方法都会创建一个tweener对象,这个对象是由dotween管理的
        Tweener tweenr= imageTransform.DOLocalMove(new Vector3(0, 0, 0), 3);
        //把默认的动画播完就会自动销毁关闭
        tweenr.SetAutoKill(false);
        //不能一上来就执行,要等点击按钮,所以要先暂停
        tweenr.Pause();
    }
    public void OnClick()
    {
        //DOPlayForward和DOPlayBackwards成对出现,会播放对象挂载的所有do类型的方法
        if (isIn == false)
        {
            imageTransform.DOPlayForward();//前放
            isIn = true;
        }
        else
        {
            imageTransform.DOPlayBackwards();//倒放
            isIn = false;
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

(下面是示例图,不过因为是使用开始和结束的两张截图做的Gif图,所以没有中间过程,只是开始和结束的对比,整篇文章的图都是这样的)
在这里插入图片描述


from Terrns

Domove()是移动到指定位置
Domove().From()是指定位置移动到初始位置(绝对位置)
Domove().From(true)是指定位置移动到初始位置(相对位置)
(不仅是DoMove,其他的DoLocalMove,DoMoveX,DoMoveY,等等都是,只是举个例子)

//示例代码
    public Transform cube1;
    public Transform cube2;
    public Transform cube3;
    void Start()
    {
        //初始时,所有方块都在(1,0,0)
        cube1.DOMoveX(4, 2);//两秒,方块1移动到(4,0,0)位置
        cube2.DOMoveX(4, 2).From();//两秒,方块从(4,0,0)位置移动到(1,0,0)
        cube3.DOMoveX(4, 2).From(true);//两秒,方块从(5,0,0)位置移动到(1,0,0)

    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述


DOText打字机效果

DoText可以实现字体在一段时间内逐个显示结束,真的要实现打字机一个一个匀速的输出字体,还需要配合控制运动曲线的SetEase。

//示例代码
    public Text text;
    void Start()
    {
        text.DOText("正在学习使用DoTween插件实现打字机效果,及字体的逐一显示",8);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

DOShakePosition实现震动效果

//示例代码
    transform.DOShakePosition(0.5f);//在0.5秒内,以默认振幅1在随机范围震动
    transform.DOShakePosition(0.5f,3);//在0.5秒内,以振幅3在随机范围震动
    transform.DOShakePosition(0.5f,new Vector3(2,0,0));//在0.5秒内,以振幅为2在X轴震动
  • 1
  • 2
  • 3
  • 4

DOColor颜色和透明度变化

//示例代码
    public Text test1;
    public Text test2;
    void Start()
    {
        test1.DOColor(Color.green, 4);//4秒,这行字体变成绿色
        test2.DOFade(0.5f, 4);//4秒,这行字体透明度变为50%
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述


twenner.SetEase(Ease.某种运动曲线)

运动曲线,用来调节运动速度的变化
如果需要匀速的动画速度的话,可以选择:linear
下面是一部分曲线的图示:
在这里插入图片描述
在这里插入图片描述

(这俩张图截取自菜鸟教程,还可以直观的对比各曲线的运动速度变化,想看的可以自己去看,以下是网址:菜鸟教程)


twenner.SetLoops(次数)

控制动画的循环次数


twenner.OnComplete(一个方法)

在动画执行结束时调用某个方法


?以上是一些常用方法通过代码来实现,DoTween也支持可视化编辑来实现动画效果,下一篇是DoTween的可视化编辑的介绍。


更新一下:下一篇博客,可视化编辑部分在这里:DoTween动画插件(下)
?更多内容请前往主页置顶或点击链接直达:【unity3D】游戏开发专栏的目录

注:本文转载自blog.csdn.net的猪肉丸子~的文章"https://blog.csdn.net/zhurouwanzi/article/details/128450278"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top