UI常用到的动画制作方法有哪些呢?

UI常用到的动画制作方法有哪些呢?

那么UI中常用的动画方法有哪些呢? 项目中常用ITween和DoTween这两个插件来创建补间动画。 也有人利用Unity3D自带的动画功能来制作K帧动画效果(前不久听说这个方法,不能当屌丝程序使用。接受这个K帧动画方法,虽然方法使用很简单,细节无法用代码控制,动画管理、内存、效率都存在问题,这就是为什么国外高手根本用ITween等补间动画插件的原因)我就不说了这个方法啥的,免得被喷死~

ITween是一个非常著名的补间动画插件。 因为它体积小而且功能非常强大,所以一直受到独立开发者和公司的喜爱。 不过ITween也有其自身的一些缺点和性能缺陷,逐渐出现了性能更好的Tween动画插件,比如LeanTween、Hotween、DOTween等(这些是我所知道的补间动画)。 如果你想比较它们之间的性能,可以去DoTween官网查看。 毕竟,DoTween 的作者必须让用户知道它的插件有多么强大,才能吸引用户。 DoTween 功能强大、高效、可读且易于使用。

由于DoTween已经支持UGUI补间动画开发,因此这里将使用UGUI进行简单的演示和说明。

首先我们需要使用DoTween命名空间来调用DoTween相关函数,如图:

添加命名空间后数据报告,继续学习To函数。 这是一个很常见的功能需求,就是将UI移动到指定的位置。 这样,我们将使用 To 函数unity ui界面切换特效,顾名思义,但它的功能并不局限于从一个位置到另一个位置有多容易。 我们先来看看如何使用这个功能。 一般的写法如下图:

myValue2代表初始参数,x可以理解为temp中间参数并将这个数字赋给myValue2,-10是结束参数,2是完成动画所需的时间。 由于To函数是一个重载函数,因此它不限于位置移动。 Float、double、Vector3、Color等都可以使用To函数来实现它们的效果。 那么我来研究一下下面的代码unity ui界面切换特效,代码如下:

using UnityEngine;
using System.Collections;
using DG.Tweening;
public class GetStart : MonoBehaviour {
public Transform cubeTransform;
public RectTransform taskPanelTransform;
public float myValue2 = 0;
// Use this for initialization
void Start () {
//对变量做一个动画 (通过插值的方式去修改一个值的变化)
DOTween.To(() => taskPanelTransform.localPosition, x => taskPanelTransform.localPosition = x, new Vector3(0, 0, 0), 2);
DOTween.To(() => myValue2, x => myValue2 = x, -10,2);
}
// Update is called once per frame
void Update () {
cubeTransform.position = new Vector3(myValue2,0,0);
}
}

以上代码都是修改组件的位置。 第一种方法使用 localPosition 参数直接修改组件位置。 第二种方法使用float参数,然后使用float来修改组件位置。 这种方法显然是非常灵活的。 不仅可以传入Vector3,还可以传入各种类型的参数。

虽然上面的用法看起来比ITween简单很多,但是感觉还是相当繁琐。 因此,DoTween还提供了一些简单的Move函数来方便我们的读写。 方法如图:

如图所示,panelTransform是一个带有Transform参数的函数。 您可以直接使用DoLocalMove或DoMove函数来实现移动。 第一个参数表示移动到(0,0,0),第二个参数表示动画时间为0.3f秒。 。 这个方法比第一种方法更简单、更清晰吧?

那么如果我们不需要从呢? 换句话说,它变成了从到到?

这里我们的DoTween也提供了from方法。 使用方法如下图所示:

该函数的含义是沿X轴方向移动,从x=10到指定位置,动画播放时间为4秒,是否为from to to类型的移动。 那么指定位置是如何指定的呢?

这实际上是你的组件的默认Tranfrom.position,如图:

我们从刚才的代码中了解到的是,从x=10到x=1的动画需要4秒。

好吧! Move函数的代码和使用已经基本完成。 如果有新的发现,我会在稍后补充~

DoTween的功能肯定不止这些,所以我会慢慢添加自己学到的用法,有需要的话会写出更酷的UI动画效果(PS:一般懒得去想这些功能,如果你有这些炫酷的动画就可以之前已经介绍过3D道具,我可以尝试实现一下)

——海棠

文章来源:https://www.geek-share.com/detail/2672571865.html