李约热内个卢 2023-06-11 01:49 采纳率: 0%
浏览 409

Unity多个canvas情况下,一个模式改为world space后按钮ui都失灵点不了

第一张是screen space overlay设置下的canvas

img


第二张是world space设置下的canvas

img


然后第一个是可以正常交互按键的,第二个canvas下的button就点击无效,已经检查了graphic raycaster和event system,都设置的没问题,不知道为什么world space的canvas没法点击了?

  • 写回答

1条回答 默认 最新

  • IT论之程序员 2023-06-11 09:31
    关注

    World Space 的 Canvas 不会接收输入事件,因为它是按世界坐标放置的,而不是屏幕坐标。
    要修复这个问题,你有两种选择:

    1. 为 World Space 的 Canvas 添加一个 Graphic Raycaster 组件,并将它添加到相应的 Event System 中。这会让 Canvas 接收射线投射事件并相应点击。
    2. 将 World Space 的 Canvas 设置为 Screen Space - Overlay,但调整它的Z轴位置使其置于场景之上。这会让其接收正常的屏幕输入事件。
      我个人更推荐第二种方法。世界空间的报价目的通常是使UI元素在3D场景中看起来更自然,但Screen Space - Overlay 模式仍允许此目的,同时也使其可点击。
      具体步骤如下:
    3. 将 World Space Canvas 的 Render Mode 改为 Screen Space - Overlay
    4. 调整 Canvas 的 Z 轴位置,使其高于场景中的所有元素。适当的值通常在 5 到 10 之间。
    5. 在 Canvas 上添加 Canvas Scaler 组件,并勾选 Match Width or Height。这会使 Canvas 覆盖整个屏幕。
    6. 可选:调整 Canvas 的 Sorting Layer 和 Sorting Order,控制其在其他 Canvas 之前或之后呈现。
      这应该可以让你的 World Space UI 元素在 3D 场景中正常工作,同时也是可点击的。
    评论

报告相同问题?

问题事件

  • 创建了问题 6月11日