DOTween是一个快速,高效,完全统一的类型安全的对象属性动画引擎,免费开源,大量的高级特性.
DoTween兼容Unity4.5以上的版本,支持的平台: Win, Mac, Unity WebPlayer, WebGL, iOS, Android,Windows Phone 8, Windows Store, PS Vita (PSM), PS4,Xbox One平台,
(下载之后放入Plugins文件夹,引入DG.Tweening命名空间就可以使用了)
官网地址: http://dotween.demigiant.com/
下载地址: http://yunpan.cn/cdvNuC4cGkfGF 访问密码 07ec
特性:
- 速度和效率: 不仅非常快,而且非常有效:一切都是缓存和重用,避免无用的GC分配。
- 快捷: 使用扩展方法扩展公共对象用户方便编写代码如下
// Move a transform to position 1,2,3 in 1 second
transform.DOMove(new Vector3(1,2,3), 1);
// Scale the Y of a transform to 3 in 1 second
transform.DOScaleY(3, 1);
// Pause a transform's tween
transform.DOPause(); - 几乎支持任何动画: 支持属性数字,非数字, 字符串和富文本动画展现
- 还有很多我就不一一介绍了
简单移动Cube到达目的地:
public Transform cube; // Use this for initialization
void Start () {
//向0,4,0的位置移动过去
cube.DOMove(new Vector3(0,4,0), 2);
//从0,4,0的位置移动过来
cube.DOMove (new Vector3 (0, 4, 0), 2).From();
//向0,4,0的位置来回移动
cube.DOMove (new Vector3 (0, 4, 0), 2).SetRelative().SetLoops(-1,LoopType.Yoyo); //另一种写法
DOTween.To(()=> cube.position, x=> cube.position = x, new Vector3(0, 4, 0), 1).SetRelative().SetLoops(-1, LoopType.Yoyo);
}
移动,旋转,缩放:
//向上移动4个单位
cube.transform.DOBlendableMoveBy (new Vector3 (0, 4, 0), 2); //自身坐标向上移动4个单位
cube.transform.DOBlendableLocalMoveBy (new Vector3 (0, 4, 0), 2); //旋转
cube.transform.DOBlendableRotateBy(new Vector3(0, 180, 0), 2).SetLoops(-1,LoopType.Yoyo); //本地坐标系转换30度
cube.transform.DOBlendableLocalRotateBy(new Vector3(0, 180, 0), 2).SetLoops(-1,LoopType.Yoyo);
//开始值(1,1,1) 5秒内增加到 (3,3,3)
cube.transform.DOBlendableScaleBy(new Vector3(2, 2, 2), 5);
跳跃,冲压机
DOJump(new Vector3(5, 0, 0), 5, 1,5); | 假设cube坐标(0,0,0)最终跳跃到(5,0,0)位置,跳跃的中间最高度是5,跳跃1次,5秒完成 |
DOPunchPosition(new Vector3(10, 10, 10), 5); | 在 5 秒内在原始坐标和下面坐标之间,来回冲压 |
DOPunchRotation(new Vector3(50, 50, 50), 5); | 在 5 秒内在原始旋转和下面角度之间,来回冲压变化 |
DOPunchScale(new Vector3(5, 5, 5), 5); | 在 5 秒内在原始比例和下面比例之间,来回冲压变化 |
控制Itween方法:
DOComplete(); | 执行该方法,变化立即结束,且完成移动 |
DOFlip(); | 在变化过程中执行该方法,则物体慢慢的变回原样,如果变化已经完成,该方法无效 |
DOGoto(2); | 变化过程中执行该方法,则物体变化到 第二秒 时该物体的位置、比例等 |
DOKill(); | 停止掉当前的变化 |
DOPlayBackwards(); | 播放结束之前,让物体倒序运动到原位 |
DOPlayForward(); | 播放结束之前,让物体继续运动到目标位置 |
DORestart(); | 在变化结束之前,执行该方法,则重新开始变化 |
DORewind(); | 变化过程中执行该方法,回到原始 |
DOPause(); | 停止 |
DOPlay(); | 开始 |