Unity插件学习——DOTween(一)
来源:互联网 发布:淘宝打包员是干什么的 编辑:程序博客网 时间:2024/05/14 12:43
了解特性
先上一波翻译,了解DOTween特性。
本人使用Google全页翻译插件,有不准的地方多多包含。
支持平台
除了Flash其他几乎都可以完美运行。速度和效率
不仅非常快,而且非常高效:一切都被缓存和重用,以避免无用的GC分配。 智能感知和类型安全。快捷方式
直接扩展常用对象的快捷方式扩展如下:
// 在1秒内移动到位置(1,2,3)。transform.DOMove(new Vector3(1,2,3), 1);// 在1秒内缩放到(3,3,3)。transform.DOScaleY(3, 1);// 暂停这个transform的所有Tween。
非常准确
时间以非常精确的方式计算。这意味着1000个循环,每个1秒钟将播放完全与1000秒的单个循环一样长。变化一切(几乎所有)
DOTween可以对每个数值和一些非数字值进行动画。它甚至可以用动画的字符串,为富文本支持。捕捉,轴约束和其他选项
选择有关如何补间值的其他选项,例如捕捉(将值捕捉到整数)或轴约束。完全控制
播放,暂停,倒带,重新启动,完成,Goto和吨其他有用的方法来控制你的补间。分组
将补间组合到序列中以创建复杂的动画(不需要是a,uh,序列:它们也可以彼此重叠)。可混合补间
一些补间可以实时混合在一起,由于强大的DOBlendable快捷方式。路径
沿线性和弯曲路径动画的东西,以及您的旅行代理的方向的附加选项。在播放时更改值和持续时间
随时更改补间的开始/结束值或持续时间,即使在播放时。安全模式
激活可选的安全模式,让DOTween处理意外事件,例如在玩耍时破坏补间的目标。协同的收益
各种“WaitFor…” 方法在协同程序中使用,允许您等待补间完成,杀死,启动或到达给定位置或循环。多种旋转模式
旋转补间可以采用最短路径,完整路径,或使用本地或基于世界的轴。共享方法
它是Tweener还是序列?谁在乎?它们都继承自Tween,因此你可以存储它们并以同样的方式控制它们。额外
额外的虚拟方法做一些东西喜欢在给定的延迟后调用函数。所有的基础
回调,循环,易用性(包括AnimationCurves和自定义缓动功能),SpeedBased和许多其他补间选项。此外,更新类型的选择:常规,固定,晚,加上选项,使其与时间无关。
细节参考官网:http://dotween.demigiant.com/
使用方法
命名空间
using DG.Tweening;
A.调用静态方法
使用DoTween.MathodName调用方法。
支持的数值类型:
float, double, int, uint, long, ulong, Vector2/3/4, Quaternion, Rect, RectOffset, Color, string
接口:
Push、Shake、ToAlpha、ToArray、ToAxis、To
看完表示被震惊了,什么数值都可以改!
现在终于知道以前自己写小游戏自己实现动画系统多蠢了 - -.
用法:
private float myValue;//1秒内将myValue设置到10。DoTween.To(()=> myValue, x=> myValue = x, 10f, 1f);static float value;//1秒内将value设置到10,无限以溜溜球模式循环。DoTween.To(()=> float, x=> float = x, 3f, 1f).SetRelative(true),SetLoops(-1, LoopMode.Yoyo);
B.快捷方式
直接在对象示例上调用扩展方法。
已实现扩展方法的类:
Unity5:
AudioSource、Camera、Light、LineRenderer、Material、Rigidbody、Rigidbody2D、SpriteRenderer、TrailRenderer、Transform
Unity UI 4.6:
CanvasGroup、Image、LayoutElement 、Outline、RectTransform、ScrollRect、Slider 、Text
Pro版本:
tk2dBaseSprite、tk2dSlicedSprite、tk2dTextMesh、TextMeshPro 、TextMeshProUGUI、Spiral
用法:
transform.DOMove(new Vector3(2,2,2), 1);rigidbody.DOMove(new Vector3(2,3,4), 1);material.DOColor(Color.green, 1);
Sequence 序列
序列类似一个Tween,但是它是一个Tween的组。
可以顺序,也可以并行。
注意:
- Tween仅仅可以同时存在在一个Sequence中。
- Sequence可以嵌套。
- Sequence一旦执行不可以单独控制Sequence中的Tween或Sequence。
用法:
// 首先,新建一个Sequence:var sequence = new DOTween.Sequence();// 1.添加一个 (一秒内向X方向移动45)的Tween。sequence.Append(transform.DOMoveX(45, 1));// 2.追加一个 (一秒内逆时针旋转180°)的Tween。sequence.Append(transform.DORotate(new Vector3(0, 180, 0), 1));// 3.追加一个 延时一秒 的Tween。sequence.PrependInterval(1);// 4.在0的位置上 插入一个(在当前Sequence总时长内,设置缩放为(3,3,3))的Tween。sequence.Insert(0, transform.DOScale(new Vector3(3, 3, 3), sequence.Duration()));// ↑ 注意,Duration已经排除PrependInterval(延时),所以Duration为DOMoveX.Duration为3。// 播放顺序:4->1->2->3。// 总时长:6s。
当然这样写更 简洁:
//创建一个Sequence:Sequence sequence = DOTween.Sequence();//对sequence进行操作sequence.Append(transform.DOMoveX(45, 1)) .Append(transform.DORotate(new Vector3(0, 180, 0), 1)) .PrependInterval(1) .Insert(0, transform.DOScale(new Vector3(3, 3, 3), sequence.Duration()));//不推荐缩到一句,因为未初始化时不可以获取sequence的属性。
下一篇文章继续写设置,选项,回调,控制补间等
- Unity插件学习——DOTween(一)
- Unity常用插件之DoTween(一)
- 【DoTween】Unity插件DOTween教程(一)
- Unity学习笔记11——UGUI动画插件DoTween
- 【Unity插件】DoTween学习笔记
- DOTween插件的学习经验(一)
- Unity插件Dotween(二)
- Unity动画插件DoTween使用总结(一)
- unity之DOTween插件学习01
- unity之DOTween插件学习02
- Unity常用插件之DoTween(三)
- Unity常用插件Dotween(四)
- [Unity插件]DOTween基础
- Unity插件 DOTween基础
- Unity插件DOTween教程
- Unity插件 DOTween基础
- [Unity插件]DOTween基础
- [Unity插件]DOTween(2)
- C++设计模式——简单工厂模式
- Access Modifiers In Java
- File文件的属性设置
- 理解函数式编程
- IO流_File类的高级获取功能
- Unity插件学习——DOTween(一)
- bzoj 2732: [HNOI2012]射箭 (二分+半平面交)
- 使用 APT-mirror 四步配置 Ubuntu 本地软件仓库
- Linux 网络编程示例
- 如何在Linux上安装一个开源VPN服务器
- Codeforces Round#392 div2
- WINHEX
- 用JWT来保护我们的ASP.NET Core Web API
- PHP和MySQL开发—第一章