Unity3D,无法单击具有画布组件的面板上的按钮

时间:2019-07-14 22:19:27

标签: unity3d

我有一个具有3个子图像和2个面板的画布。 GameOverPanel上有2个文本和2个按钮。 除UI对象外,Canvas之后还有许多其他GameObject,包括玩家。播放器具有一个SpriteRenderer,其SortingLayer =“ Default”和OrderInLayer = 1。 到目前为止,一切都很好。一切都能正确显示。

问题出在这里;当GameOverPanel设置为活动状态时,它位于不应该存在的玩家之后。因此,要解决此问题,我在GameOverPanel中添加了一个Canvas组件,现在它可以在玩家上方显示。但是,在将Canvas添加到GameOverPanel后,面板的子级按钮将不再可单击。

如果我使按钮直接成为Canvas的子代,则按钮可以正常工作。

顺便说一句-我正在使用Unity 2019 1.7

enter image description here

1 个答案:

答案 0 :(得分:1)

您必须给新的(子级)画布一个GraphicRaycaster组件。

否则,(子)画布将不会进行任何射线投射检测。这是一个预期的功能,因此可以将非交互式元素与交互式元素隔离开。