【NGUI】实现淡入淡出提示框功能

3 篇文章 0 订阅

这次我们要实现一个游戏UI开发中很常见的功能:淡入淡出提示框。功能很简单,接下来我就用以下两种方式来处理。

  • NGUI的TweenAlpha方式

首先挂载一个TweenAlpha组件,设置如下:

具体代码如下:
using UnityEngine;
using System.Collections;

public class MyAlphaTweener : MonoBehaviour
{
    void Start()
    {
        OnFadeIn();
    }

    void OnFadeIn()
    {
        gameObject.SetActive(true);
        TweenAlpha ta = GetComponent<TweenAlpha>();
        ta.ResetToBeginning();
        ta.enabled = true;
        ta.PlayForward();
        EventDelegate.Set(ta.onFinished, OnFadeOut);
    }

    void OnFadeOut()
    {
        gameObject.SetActive(false);
    }
}
  • 自定义方式

我们可以通过在Update()方法中每帧处理UIWidget组件的alpha值即可达到想要的效果。

具体代码如下:

using UnityEngine;
using System.Collections;

public class Tweener : MonoBehaviour
{
    public float tweenDelay;    //延迟时间
    public float tweenFrom;     //开始alpha
    public float tweenTo;          //结束alpha
    public float tweenDuration; //持续时间

    private bool beginTween;    //是否开始Tween
    private float alphaAdd; //alpha差值
    UIWidget widget;

    void Start()
    {
        widget = GetComponent<UIWidget>();
        BeginTween();
    }

    void BeginTween()
    {
        widget.alpha = tweenFrom;
        alphaAdd = tweenTo - tweenFrom;

        StartCoroutine(DelayTweener());
    }

    IEnumerator DelayTweener()
    {
        yield return new WaitForSeconds(tweenDelay);
        beginTween = true;
    }

    void Update()
    {
        if (beginTween)
        {
            widget.alpha += (alphaAdd / tweenDuration) * Time.deltaTime;
            if ((alphaAdd > 0.0f && widget.alpha >= tweenTo) || (alphaAdd < 0.0f && widget.alpha <= tweenTo))
            {
                beginTween = false;
            }
        }
    }
}

Ricky Yang个人原创,版权所有,转载注明,谢谢。http://blog.csdn.net/yangyy753

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ricky_yyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值