问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Unity开发实战:实现提示面板的显示与隐藏

创作时间:
作者:
@小白创作中心

Unity开发实战:实现提示面板的显示与隐藏

引用
CSDN
1.
https://blog.csdn.net/weixin_43908355/article/details/145816771

在Unity开发中,提示面板的显示与隐藏是一个常见的功能需求。本文将通过一个具体的案例,详细介绍如何实现当鼠标靠近物体时提示面板显示,离开物体时提示面板隐藏的效果。

1. 添加CanvasGroup组件

首先,需要在要控制的UI元素上添加CanvasGroup组件。CanvasGroup是Unity的UGUI系统中的一个组件,用于控制UI元素的显示、隐藏以及透明度等属性。

2. 代码设置CanvasGroup里的Alpha值

CanvasGroup组件中的Alpha属性用于控制UI元素的透明度,其取值范围为0到1。其中,0表示完全透明(即隐藏),1表示完全不透明(即显示)。我们可以通过差值顺滑渐变的方式来实现面板的显示与隐藏效果。

以下是具体的代码实现:

using UnityEngine;
using UnityEngine.UI;

public class InfoTips : MonoBehaviour
{
    private float targetAlpha = 0;
    private float smoothing = 1f;
    private CanvasGroup canvasGroup;

    private void Start()
    {
        canvasGroup = GetComponent<CanvasGroup>();
        smoothing = 5f;
    }

    private void Update()
    {
        if (canvasGroup.alpha != targetAlpha)
        {
            canvasGroup.alpha = Mathf.Lerp(canvasGroup.alpha, targetAlpha, smoothing * Time.deltaTime);
            if (Mathf.Abs(canvasGroup.alpha - targetAlpha) < 0.01f)
            {
                canvasGroup.alpha = targetAlpha;
            }
        }
    }

    public void ShowTips()
    {
        targetAlpha = 1;
    }

    public void HideTips()
    {
        targetAlpha = 0;
    }
}

3. 调用面板显示隐藏函数

为了实现当鼠标靠近物体时显示提示面板,离开物体时隐藏提示面板的效果,我们可以使用Unity的事件系统。具体来说,可以通过实现IPointerEnterHandler和IPointerExitHandler接口来监听鼠标进入和离开事件。

以下是具体的代码实现:

using UnityEngine;
using UnityEngine.EventSystems;

public class Slot : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    public InfoTips tips;

    public void OnPointerEnter(PointerEventData eventData)
    {
        tips.ShowTips();
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        tips.HideTips();
    }
}

通过以上三个步骤,我们就能够实现一个简单的提示面板显示与隐藏功能。这个功能在很多游戏和应用中都有广泛的应用,例如在物品栏中显示物品信息,或者在UI元素上显示提示信息等。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号