首页 > 解决方案 > 如何使用图像组件在 Unity 中创建遮罩?

问题描述

我正在为 Unity 游戏设计一个教程,但我被困在一个看似微不足道的问题上。对于教程中的每一步,我都会通过隐藏屏幕上的所有内容来指导用户,除了他们需要按下的按钮。我的游戏层次结构看起来像这样。

Button Canvas
   Select_Me_Button
   Dont_Select_Me_Button
Tutorial Canvas
   Mask Group 1
      Left Border Mask
      Right Border Mask
      Up Border Mask
      Down Border Mask
   Mask Group 2 ...

GameObjectTutorialCanvas有一个 Canvas 组件,其排序顺序高于ButtonCanvas. 我为所有内容添加了GraphicRaycasterComponent,并将TutorialCanvas 设置为 None。但是,即使 TutorialCanvas 在 Button Canvas 上呈现,我仍然可以单击不应单击的蒙版和触发按钮。我可以通过将用作掩码的图像组件添加到父对象并属于来阻止点击,但这是不可取的,因为我需要对图像组件进行分组以创建掩码,而游戏对象只能接受 1 个图像组件。Blocking MaskBlocking ObjectsMask Group 1Mask Group 2TutorialCanvas

我很难想象这有多难。我只需要一个带遮罩的画布来阻止点击到它后面的画布。

在此处输入图像描述

标签: unity3d

解决方案


感谢 Unity 论坛的帮助,我通过创建一组蒙版并通过脚本中的 RectTransform 的 anchoredPosition 组件定位它们来解决了这个问题。


推荐阅读