【问题标题】:How do I mask a custom UI Graphic in Unity?如何在 Unity 中屏蔽自定义 UI 图形?
【发布时间】:2018-05-15 02:50:36
【问题描述】:

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

复制:

  1. 创建 UI 画布。
  2. 创建一个名为 Mask 的 UI Image 作为 UI Canvas 的子级。
  3. 为 Mask 游戏对象添加一个 Mask 组件。
  4. 添加一个 Image 和一个 SimpleImage 作为 Mask 的子级。
  5. 观察图像被遮罩,而 SimpleImage 没有。

这对我来说是个问题,因为我需要在滚动视图中使用自定义图形。如何使我的图形与 Unity 的图形一样可屏蔽?

【问题讨论】:

    标签: c# unity3d graphics mask unity-components


    【解决方案1】:

    当我完成输入时,我就明白了这一点。这很容易。您所要做的就是从MaskableGraphic 继承而不是Graphic

    【讨论】:

    • 这是有道理的。昨天,当我看到您的问题但无法弄清楚时,我在文档中翻了一下。 Mask 类并没有说明图形需要是某种类型(即 MaskableGraphic)!
    • 感谢您的评论。让我感觉没那么愚蠢,因为没有早点意识到这一点。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2020-08-19
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多