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

Unity按钮鼠标悬停放大失效问题求助

问题描述

我尝试实现鼠标悬停按钮时让按钮放大的效果,参考教程编写了对应代码,但功能未生效。我认为已在Inspector中正确配置按钮,但悬停时无任何反应。

Unity界面与Inspector面板截图

使用的代码如下:

public class Hover : MonoBehaviour
{
    public void PointerEnter()
    {
        transform.localScale = new Vector2(1.5f, 1.5f);
    }

    public void PointerExit()
    {
        transform.localScale = new Vector2(1f, 1f);
    }
}
排查及解决方案
  • 检查场景是否存在EventSystem
    Unity UI交互依赖EventSystem组件,若场景中没有该对象,右键Hierarchy面板 → UI → EventSystem,添加后重新测试。

  • 确认事件绑定是否正确
    选中按钮对象,在Inspector的Button组件Events区域:

    1. 点击On Pointer Enter的+按钮,将挂载Hover脚本的按钮对象拖入对象槽
    2. 下拉选择Hover → PointerEnter(),同理将On Pointer Exit绑定到PointerExit()方法
  • 开启Raycast Target选项
    确保按钮的图形组件(如Image)的Raycast Target处于勾选状态,否则无法触发鼠标交互检测。

  • 确认脚本挂载对象
    Hover脚本必须挂载在按钮对象本身上,否则修改的不是按钮的缩放属性。

  • 改用RectTransform控制缩放
    若按钮在Canvas中,建议直接操作RectTransform而非Transform,避免Canvas Scaler影响显示效果,修改代码如下:

    using UnityEngine.UI;
    
    public class Hover : MonoBehaviour
    {
        private RectTransform _rectTransform;
    
        void Awake()
        {
            _rectTransform = GetComponent<RectTransform>();
        }
    
        public void PointerEnter()
        {
            _rectTransform.localScale = new Vector2(1.5f, 1.5f);
        }
    
        public void PointerExit()
        {
            _rectTransform.localScale = new Vector2(1f, 1f);
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:20:31