利用Unity UGUI 实现UI渐变效果

发表于2017-05-12
评论1 5.7k浏览
UI制作一直是许多开发者头疼的问题,想要做出高水平的美术效果特别的不容易,例如说做背包系统时,在提示面板中想实现的更加炫酷点,决定使用渐变效果来提示档次,那么该如何去实现呢,下面就教给大家利用利用Unity UGUI 实现UI渐变效果。

渐变效果实现采用改变该UI的透明度来控制其显示和隐藏

1.在UI对象上添加Canvas Group组件

2.通过控制Alpha改变其透明度来控制显示和隐藏(Alpha=0隐藏;Alpha=1显示)(Blocks Raycasts=true可以交互;Blocks Raycasts=false无法交互)

3.添加一个脚本改在到该UI对象上
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class ToolTilePanel : MonoBehaviour
{
	private float alpha = 0.0f;
	private float alphaSpeed = 2.0f;
	private CanvasGroup cg;
	void Start ()
	{		
		cg = this.transform.GetComponent<CanvasGroup>();		
	}
	void Update ()
	{
		if (alpha != cg.alpha)
		{
			cg.alpha = Mathf.Lerp(cg.alpha,alpha,alphaSpeed * Time.deltaTime);
			if (Mathf.Abs(alpha-cg.alpha)<=0.01)
			{
				cg.alpha = alpha;
			}
		}
	}
	public void Show()
	{
		alpha = 1;
		cg.blocksRaycasts = true;//可以和该UI对象交互
	}
	public void Hide()
	{
		alpha = 0;
		cg.blocksRaycasts = false;//不可以和该UI对象交互
	}

当需要显示UI对象时,调用Show方法;反之,调用Hide方法

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引