DOTween文档

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/3962424.html



前言#

DOTween现在还处于 alpha,所以还有一些缺失的功能(如路径插件,附加回调和其它的tween选项),这个文档在不久的将来可能会更新。

DoTween:0.8.2.00

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

更新于2016-06#

更新于:2016-06-25

不知不觉此文过去2年了,DoTween新版本已到:1.1.310

版本记录:http://dotween.demigiant.com/download.php 点击 Old versions and Changelog 查看版本历史

DoTween UnityUI#

Dotween已为新的GUI系统做好准备,包括CanvasGroup,Graphic,Image,LayoutElement,Outline,RectTransform,ScrollRect,Slider,Text。

利用它你肯定可以定制出强大的动画系统。

Dotween TextMesh Pro/2D Tookit#

Dotween同样为2D Tookit的Tk2dBaseSprite,tk2dSliceSprite等做好准备

Dotween同样为TextMeshPro+TextMeshProUGUI做好准备,包括DOFontSize,DOText,DOFaceFade等

Dotween 路径动画#

dotwwen pro包含路径动画,路径可视化编辑,强大的属性面板

Dotween Pro :https://www.assetstore.unity3d.com/en/#!/content/32416

Dotween Free:https://www.assetstore.unity3d.com/en/#!/content/27676

一、术语#

Tweener#

一个tween控制value和animates

Sequence#

一个特殊的tween,并不是控制value,和其它的tween一起成为一个动画组

Tween#

一个普通词,既可以表示  Tweener 也可以表示 序列

Nested tween #

一个tween,包含序列

DoTween前缀#

前缀在智能感知里是非常重要的,所以尽可能要记住这些:

DO  前缀是所有的tween的快捷方式(可以直接操作已知 object,比如transform或material),也是DOTween 类主要的前缀

transform.DOMoveX(100, 1);
transform.DORestart();
DOTween.Play();

Set   前缀,所有的tween设置

myTween.SetLoops(4, LoopType.Yoyo).SetSpeedBased();

On   前缀, 所有的tween回调

myTween.OnStart(myStartFunction).OnComplete(myCompleteFunction);

二、DOTween.Init#

当你第一次创建 tween,DOTween将会使用默认值自动初始化。

如果你喜欢自己初始化(推荐),在创建任何tween之前(创建之后将不会有任何效果),调用这些方法一次。

想想看,你可以使用DOTween的 global settting 改变所有的初始化设置。

或者,你可以 通过链 SetCapacity 初始化方法,它可以设置 Tweeners最大值/FPS的初始容量(在高版本中可以调用 DOTween.SetTweensCapacity)

static DOTween.Init(bool recycleAllByDefault = false, bool useSafeMode = true, LogBehaviour logBehaviour = default)

比如:

DOTween.Init(true, true, LogBehaviour.Verbose).SetCapacity(200, 10);

三、Creating a Tweener#

Tweener好似为DOTween工作的一只蚂蚁,它采用 属性/字段对给定值进行动画处理。

截止目前 DOTween可以处理这些类型的值:

float,int,uint,Vector2/3/4,Quaternion,Rect,RectOffset,string

有三种方式创建 Tweener

A.便捷方式#

DOTween包括一些已知的unity object,比如 Transform,Rigidbody和Material,你可以直接对这些object进行tween(这也会自动设置对象自己为target)比如:

transform.DOMove(new Vector3(2,3,4), 1);
rigidbody.DOMove(new Vector3(2,3,4), 1);
material.DOColor(Color.green, 1);

所有这些快速方式也有From,除了特殊说明,只需在方法名称后添加From

transform.DOMoveFrom(new Vector3(2,3,4), 1);
rigidbody.DOMoveFrom(new Vector3(2,3,4), 1);
material.DOColorFrom(Color.green, 1);

Camera#

DOColor(Color to, float duration)
DOShakePosition(float duration, float strength, int vibrato, float randomness)
DOShakeRotation(float duration, float strength, int vibrato, float randomness)

Light#

Material#

Rigidbody#

Move#

SpriteRenderer#

详细的文档请参考官方:http://dotween.demigiant.com/documentation.php

Transform#

Move#

DOMove(Vector3 to, float duration, bool snapping)
DOMoveX/DOMoveY/DOMoveZ(float to, float duration, bool snapping)
DOLocalMove(Vector3 to, float duration, bool snapping)
DOLocalMoveX/DOLocalMoveY/DOLocalMoveZ(float to, float duration, bool snapping)

Rotate#

DORotate(Vector3 to, float duration, bool useShortest360Route = true)
DOLocalRotate(Vector3 to, float duration, bool useShortest360Route = true)
DOLocalAxisRotate(Vector3 to, float duration)

Scale#

DOScale(Vector3 to, float duration)
DOScaleX/DOScaleY/DOScaleZ(float to, float duration)

Punch – no FROM#

DOPunchPosition(Vector3 punch, float duration, int vibrato, float elasticity, bool snapping)
DOPunchRotation(Vector3 punch, float duration, int vibrato, float elasticity)
DOPunchScale(Vector3 punch, float duration, int vibrato, float elasticity)

Shake – no FROM#

DOShakePosition(Vector3 punch, float duration, float strength, int vibrato, float randomness, bool snapping)
DOShakeRotation(Vector3 punch, float duration, int vibrato, float elasticity)
DOShakeScale(Vector3 punch, float duration, int vibrato, float elasticity)

WaitFor coroutines#

WaitForCompletion()
WaitForElapsedLoops(int elapsedLoops)
WaitForKill()
WaitForPosition(float position)
WaitForStart()

官方英文API#

后面大多比较简单就不再一一翻译了,附上官方英文文档:http://dotween.demigiant.com/documentation.php

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(18902)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
历史上的今天:
2013-09-09 Unity中小地图做法
CONTENTS
点击右上角即可分享
微信分享提示