如何在Unity中屏蔽自定义UI图形?

时间:2017-12-01 02:50:14

标签: c# unity3d graphics mask unity-components

在Unity 2017中,我设法通过制作继承自UnityEngine.UI.Graphic的自己的UI行为来绘制矢量图形。但是我的代码无关紧要,因为你可以使用文档中的SimpleImage example来观察这个问题。问题是这些从Graphic派生的自定义UI行为无法被Mask component掩盖,即使每个本机UI元素都可以。这很奇怪,因为根据Graphic.OnPopulateMesh文档,TextImageRawImage都使用相同的方法。

重现:

  1. 创建UI画布。
  2. 创建名为Mask的UI图像作为UI Canvas的子项。
  3. 将Mask组件添加到Mask游戏对象。
  4. 添加一个Image和一个SimpleImage作为Mask的子项。
  5. 观察到在没有SimpleImage的情况下屏蔽了图像。
  6. 这对我来说是个问题,因为我需要在滚动视图中使用自定义图形。我可以做些什么来使我的图形可以屏蔽与Unity的图形相同?

1 个答案:

答案 0 :(得分:3)

当我完成输入时,我认为这是正确的。这太荒谬了。您所要做的就是继承MaskableGraphic而不是Graphic