前言

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

DOTween文档的更多相关文章

  1. C#给PDF文档添加文本和图片页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

  2. dotNET跨平台相关文档整理

    一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...

  3. ABP文档 - Javascript Api - AJAX

    本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...

  4. ABP文档 - EntityFramework 集成

    文档目录 本节内容: Nuget 包 DbContext 仓储 默认仓储 自定义仓储 特定的仓储基类 自定义仓储示例 仓储最佳实践 ABP可使用任何ORM框架,它已经内置了EntityFrame(以下 ...

  5. ABP文档 - SignalR 集成

    文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...

  6. ABP文档 - 通知系统

    文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...

  7. ABP文档 - Hangfire 集成

    文档目录 本节内容: 简介 集成 Hangfire 面板授权 简介 Hangfire是一个综合的后台作业管理器,可以在ABP里集成它替代默认的后台作业管理器,你可以为Hangfire使用相同的后台作业 ...

  8. ABP文档 - 后台作业和工作者

    文档目录 本节内容: 简介 后台作业 关于作业持久化 创建一个后台作业 在队列里添加一个新作业 默认的后台作业管理器 后台作业存储 配置 禁用作业执行 Hangfire 集成 后台工作者 创建一个后台 ...

  9. ABP文档 - Javascript Api

    文档目录 本节内容: AJAX Notification Message UI Block & Busy Event Bus Logging Other Utility Functions A ...

随机推荐

  1. Angularjs,WebAPI 搭建一个简易权限管理系统 —— WebAPI项目主体结构(四)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 5.0 WebAPI项目主体结构 5.1 总体结 ...

  2. winform(ListView及数据库连接)

    一.ListView:列表展示数据1.视图 - 在其右上方小箭头点击将视图改为Largelcon:或右键属性在外观View将其改为Details2.设置列头 - 在其右上方小箭头点击选择编辑列,然后添 ...

  3. swift学习笔记之-构造过程

    //构造过程 import UIKit /* 构造过程(Initialization): 1.构造过程是使用类.结构体或枚举类型的一个实例的准备过程.在新实例可用前必须执行这个过程,具体操作包括设置实 ...

  4. 微信公共平台开发4 .net

    之前说了让微信发送给关注我们的粉丝普通的文本信息,下面我们来看看如何发送图文信息,需要注意的是这里说的是,让微信发给我们,而不是我们拍个图片发给微信处理,上传图片在以后的再讲.下面是发送图文消息的函数 ...

  5. Android项目实战(十一):moveTaskToBack(boolean ) 方法的使用

    当你开发的程序被按后退键退出的时候, 你肯定不想让他就这么被finish()吧,那么就想把程序退置到后台就可. (类似于PC端,你关闭一个浏览器和你最小化一个浏览器的区别) 参看方法:public b ...

  6. CoreAnimation(CA)

    开发者真会玩,原来我看到CA都懵了.啥是CA?原来就是Core Animation.哎,读书少啊,被虐成

  7. 带删除的EditText

    在安卓开发中EditText是比较常用的控件之一,那我们平常看到EditText填写了内容之后右边会出现一个删除的按钮,这样可以方便用户对其中文本清空操作,是非常人性化的,我们可以重写EditText ...

  8. 2、IOS开发--iPad之仿制QQ空间 (初始化HomeViewController子控件视图)

    1.先初始化侧边的duck,效果图: 实现步骤: 2.然后初始化BottomMenu,效果: 步骤: 其实到这里,会出现一个小bug,那就是: 子控件的位置移高了,主要原因是: 逻辑分析图: 问题解决 ...

  9. Android四大组件之BroadCast(续)

    1.哪一个方法可以发送广播? activity.sendbroadcast or context.sentbroadcast or service.sendbroadcast 2.创建广播接受程序必须 ...

  10. 关于touch事件对于性能的影响

    第一次写博客随笔,废话不多说,直接进入正题. 最近一直专注于移动终端的开发,碰到了一个比较棘手的事情,就是touch事件,大家都知道,touch事件有几种,无非就是touchstart,touchmo ...