Unity:UI进入离开事件

1 脚本解析

VideoCtrlShowHide脚本是一个用于控制游戏内视频控制器面板显示和隐藏的实用工具。下面我们将深入探讨其工作原理。

2 脚本结构

ControllerPanel: 这是一个公开的GameObject字段,用于引用要显示和隐藏的控制器面板。
isMouseOver: 一个布尔变量,表示鼠标是否位于面板上方。
isHiding: 另一个布尔变量,表示面板是否正在隐藏过程中。

3 方法解析

OnPointerEnter(PointerEventData eventData):
当鼠标光标进入ControllerPanel时,此方法被调用。
如果鼠标不在面板上且面板正在隐藏,将取消隐藏操作。
设置ControllerPanel为活动状态,使其可见,并更新isMouseOver为true。

OnPointerExit(PointerEventData eventData):
当鼠标光标离开ControllerPanel时,此方法被调用。
如果鼠标先前在面板上,则启动延时2秒后隐藏面板的过程,并更新相关变量。

HidePanel():
此方法用于实际执行面板的隐藏操作,即设置ControllerPanel为非活动状态。

using UnityEngine;
using UnityEngine.EventSystems;

public class VideoCtrlShowHide : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    public GameObject ControllerPanel; // 要显示和隐藏的游戏对象

    private bool isMouseOver = false;
    private bool isHiding = false;

    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.Log("进入");
        if (!isMouseOver && isHiding)
        {
            CancelInvoke("HidePanel");
            isHiding = false;
        }
        ControllerPanel.SetActive(true);
        isMouseOver = true;
    }

    // 当鼠标离开挂载的游戏对象时调用
    public void OnPointerExit(PointerEventData eventData)
    {
        if (isMouseOver)
        {
            Invoke("HidePanel", 2f);
            isHiding = true;
            isMouseOver = false;
        }
    }

    void HidePanel()
    {
        ControllerPanel.SetActive(false);
    }
}

相关推荐

  1. Qt 鼠标进入离开事件

    2024-07-18 17:18:05       56 阅读
  2. Unity:UI进入离开事件

    2024-07-18 17:18:05       20 阅读
  3. UnityUI看向相机

    2024-07-18 17:18:05       46 阅读
  4. 鸿蒙 进程模型-公共事件

    2024-07-18 17:18:05       41 阅读
  5. 全屏插件监听进入退出事件

    2024-07-18 17:18:05       31 阅读
  6. vue对键盘事件进行监听

    2024-07-18 17:18:05       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 17:18:05       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 17:18:05       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 17:18:05       62 阅读
  4. Python语言-面向对象

    2024-07-18 17:18:05       72 阅读

热门阅读

  1. opencv—常用函数学习_“干货“_6

    2024-07-18 17:18:05       20 阅读
  2. web前端 Vue 框架面试120题(四)

    2024-07-18 17:18:05       20 阅读
  3. 富格林:可信办法阻挠虚假受骗

    2024-07-18 17:18:05       20 阅读
  4. ClickHouse中使用UNION

    2024-07-18 17:18:05       21 阅读
  5. vue3项目中pinia的用法详解(值得收藏)

    2024-07-18 17:18:05       21 阅读
  6. jd-gui反编译出现中文乱码问题

    2024-07-18 17:18:05       19 阅读
  7. CL11命令行解析使用实例

    2024-07-18 17:18:05       20 阅读
  8. PCB的层叠结构

    2024-07-18 17:18:05       19 阅读
  9. vim+cscope+ctags

    2024-07-18 17:18:05       24 阅读
  10. gitlab reset passwd

    2024-07-18 17:18:05       22 阅读
  11. 02-Redis未授权访问漏洞

    2024-07-18 17:18:05       23 阅读
  12. 开发一个商城app需要多少钱

    2024-07-18 17:18:05       23 阅读
  13. 【STM32】超声波一般常用哪两个引脚?

    2024-07-18 17:18:05       20 阅读
  14. Linux 之 ln 硬链接和软链接

    2024-07-18 17:18:05       21 阅读