Unity中实现UI渐隐渐显的效果

1、在UI对象上添加组件:CanvasGroup;

2、在对象上添加脚本:UI_FadeInFadeOut 脚本;


脚本信息:

(Blocks Raycasts=true可以交互;Blocks Raycasts=false无法交互)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// UI的渐入渐出
/// </summary>
public class UI_FadeInFadeOut : MonoBehaviour {
    private float UI_Alpha = 1;             //初始化时让UI显示
    public float alphaSpeed = 2f;          //渐隐渐显的速度
    private CanvasGroup canvasGroup;

	// Use this for initialization
	void Start () {
        canvasGroup = this.GetComponent<CanvasGroup>();
    }
	
	// Update is called once per frame
	void Update () {
        if (canvasGroup == null)
        {
            return;
        }

        if (UI_Alpha != canvasGroup.alpha)
        {
            canvasGroup.alpha = Mathf.Lerp(canvasGroup.alpha, UI_Alpha, alphaSpeed * Time.deltaTime);
            if (Mathf.Abs(UI_Alpha - canvasGroup.alpha) <= 0.01f)
            {
                canvasGroup.alpha = UI_Alpha;
            }
        }
	}

    public void UI_FadeIn_Event()
    {
        UI_Alpha = 1;
        canvasGroup.blocksRaycasts = true;      //可以和该对象交互
    }

    public void UI_FadeOut_Event()
    {
        UI_Alpha = 0;
        canvasGroup.blocksRaycasts = false;     //不可以和该对象交互
    }


}

3、需要显示时,添加  UI_FadeIn_Event()  事件;

4、需要隐藏时,添加  UI_FadeOut_Event()  事件;

5、注意:父物体隐藏和显示时,子物体同样也隐藏和显示。


  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Unity实现渐隐效果可以通过以下步骤: 1. 在需要实现渐隐效果的游戏对象上添加一个名为“Fader”的新脚本。 2. 在“Fader”脚本声明一个公共变量“fadeSpeed”,用于控制渐隐速度。 3. 在“Fader”脚本定义一个名为“FadeOut”的新函数,用于实现渐隐效果。在这个函数,使用Color.Lerp方法将游戏对象的颜色从当前颜色(alpha值为1)渐变为完全透明的颜色(alpha值为0)。使用Time.deltaTime和fadeSpeed来控制渐隐速度。 4. 在需要触发渐隐效果的代码调用“FadeOut”函数。 代码示例: ```csharp using UnityEngine; using System.Collections; public class Fader : MonoBehaviour { public float fadeSpeed = 1.5f; // 控制渐隐速度的变量 void FadeOut () { // 使用Color.Lerp方法将游戏对象的颜色从当前颜色(alpha值为1)渐变为完全透明的颜色(alpha值为0) GetComponent<Renderer>().material.color = Color.Lerp(GetComponent<Renderer>().material.color, Color.clear, fadeSpeed * Time.deltaTime); } } ``` 在需要触发渐隐效果的代码,调用“FadeOut”函数即可实现渐隐效果: ```csharp void Update () { if (Input.GetKeyDown(KeyCode.Space)) { // 触发渐隐效果 GetComponent<Fader>().FadeOut(); } } ``` 注意:上述代码仅适用于通过材质颜色来实现渐隐效果的情况。如果需要实现更复杂的渐隐效果(例如,淡出音乐或声音),则需要使用其他方法(例如,利用Animation或Tween库来控制透明度)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值