You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用新输入系统时IPointerEnter/ExitHandler仅鼠标按下触发问题求助

解决Unity新输入系统下IPointerEnter/ExitHandler仅在鼠标按键按下时触发的问题
  • 检查EventSystem的输入模块配置
    确保场景中的EventSystem组件使用Input System UI Input Module,而非旧的Standalone Input Module。旧模块无法适配新输入系统的悬停事件逻辑,同时要确认该模块处于启用状态。

  • 验证UI元素的射线检测开关
    打开目标UI元素(如Image、Text)的Inspector面板,确认Raycast Target选项已勾选。该开关关闭时,Unity射线检测无法识别光标悬停状态,直接导致Enter/Exit事件失效。

  • 确认输入系统的全局设置
    进入Project Settings > Player,将Active Input Handling设为Input System Package (New),避免新旧输入系统共存引发冲突。同时检查Project Settings > Input System Package,确保核心功能处于启用状态。

  • 检查脚本与物体的激活状态

    1. 确认实现接口的脚本已启用(Inspector面板的复选框勾选);
    2. 挂载脚本的UI物体必须处于激活状态(Hierarchy面板中物体未灰显),否则事件无法传递。
  • 核对接口方法的正确性
    确保方法签名无拼写错误,且引用了正确的命名空间:

    using UnityEngine.EventSystems;
    
    public class YourUIScript : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
    {
        public void OnPointerEnter(PointerEventData eventData)
        {
            // 悬停触发逻辑
        }
    
        public void OnPointerExit(PointerEventData eventData)
        {
            // 移出触发逻辑
        }
    }
    

    注意方法名大小写、参数类型必须严格匹配,不能省略PointerEventData参数。

  • 排查射线遮挡问题
    检查目标UI元素上方是否有其他开启Raycast Target的UI元素,或带有Collider的3D物体。上层遮挡物会优先接收光标事件,导致下层元素的Enter/Exit无法触发。

内容的提问来源于stack exchange,提问作者MatterGoal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:17:07