Unity画布按钮无效

8

我在一张图片上添加了一个画布组件以覆盖默认图层排序。结果,该面板上的按钮控件停止工作了?

在Unity中,有人知道这是怎么回事吗?我正在使用Unity 5.5.2版本。


在一个对象上添加画布可能会搞砸很多东西。在这种情况下,问题不是按钮控件停止工作了,而是鼠标点击事件被最顶层的父级画布所捕获,无法传递给子级画布。 - Draco18s no longer trusts SE
2个回答

23
调试的最简单方法是:
  1. 在编辑器中运行游戏而非全屏模式(取消选中 Play 按钮中的 Maximize On Play )
  2. 选择你场景中的 EventSystem GameObject
  3. 在检查器中打开 Preview 窗口并将其放大到足够大
  4. 移动鼠标到屏幕上并检查按钮名称是否出现在 pointerEnter 字段旁边

EventSystem

如果看不到,请尝试以下解决方案:
  1. 确保没有 UI 元素覆盖在按钮上,可能会阻碍射线投射
  2. 确保已在按钮使用的图像上启用了射线投射(请检查RaycastTarget

Raycast target

  1. 确保在场景中存在 EventSystem
  2. 确保已将回调附加到按钮以触发您的函数
  3. 确保没有任何带有 BlocksRaycastInteractable 设置为 false 的 CanvasGroup
  • 确保您在游戏对象上(通常是画布)附加了GraphicRaycaster脚本组件。

  • 谢谢。这帮助我解决了我的问题。同时也学会了如何使用事件系统预览窗口进行调试。 - leelavinodh
    谢谢,我不明白为什么会发生这种情况,但你说的第一件事帮了我,我的按钮上方有一个文本阻止了交互,再次感谢。 - Kaito

    6
    原来我不知道你还需要添加一个Graphic Raycaster组件。添加后才能开始输入。谢谢大家。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接