UnityDoTween插件关于动画重复使用的问题

先来看一下demo:

在demo中呢,图片1(左侧的image)与图片2(右侧的image)做了一个从0->1的缩放动画。之前我做这些简单的动画都是默认让图片初始大小为0,然后用dotween插件的函数进行缩放至1。如果只是使用一次的话,倒没什么。如果需要多次使用的话,那么第二次使用时,必须初始化图片的大小,也就是让图片大小设置为0,再进行动画的播放,不然是没有这个动效的。而第二种方法呢就是用一个动画反向运动的方法来实现,也就是加From()这个方法。具体测试代码,下面会给出。利用这个反向运动,可以重复播放同一个动画而不需要做初始化。算是一个小技巧吧,这里记录一下!!

两张图片的初始大小:


测试代码如下:

using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// 
/// * Writer:June
/// *
/// * Data:2021.3.10
/// *
/// * Function:缩放例子
/// *
/// * Remarks:
/// 
/// </summary>

public class ZoomTest : MonoBehaviour
{
    public Image image1, image2;
    public Button zoomButton1, zoomButton2;

    private void Start()
    {
        zoomButton1.onClick.AddListener( delegate 
        {
            image1.gameObject.SetActive(true);
            image1.transform.DOScale(1, 0.5f).SetEase(Ease.OutBack);
        });

        zoomButton2.onClick.AddListener(delegate
        {
            image2.gameObject.SetActive(true);
            //From()是倒置动画
            image2.transform.DOScale(0, 0.5f).From().SetEase(Ease.OutBack);
        });
    }
}

比如下面这个例子:

是一个官方的例子,在例子中,这个框选人物,选中之后,人物脚下的光环从0放大到1的过程。这个动画是很简单的,但是你如果用上述的第一个方式的话,每次都要进行初始化,当然你要这样做也不是什么坏事,这里只是多提供一下小技巧罢了。而第二种方式的话呢,直接一行代码搞定。


补充:

在上述我写的代码中,我发现一个问题,就是疯狂点击button2按钮,会导致图片2越来越小,造成这样的原因是上一次点击的动画还没播放完,再继续播放下一次动画,就会出现这样的问题。解决方法呢,就是使用DOComplete()方法。

在动画播放的前面,加上就可以解决问题了。

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值