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区域:- 点击
On Pointer Enter的+按钮,将挂载Hover脚本的按钮对象拖入对象槽 - 下拉选择
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
相关产品推荐
相关产品推荐

