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

来源:互联网 发布:淘宝买家已付款钱在哪 编辑:程序博客网 时间:2024/06/08 02:06

这次我们要实现一个游戏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

0 0
原创粉丝点击