UI掩码中的奇怪行为

时间:2016-07-23 19:10:29

标签: unity3d

我正在尝试使用蒙版创建2D UI健康栏。我有一个黑色背景图像,健康栏的整个部分的绿色健康条图像,以及健康栏的耗尽部分的灰色蒙版图像。黑色背景大小约为1 x .1,绿色和灰色部分略小,因此在健康栏边缘可见一小部分黑色背景。

当我将健康栏添加到我的场景时,我只看到黑色背景。如果我关闭Mask脚本,绿色部分会显示出来。最奇怪的是,如果我将绿色部分的宽度增加到50这样的大数字,那么整个条形变为绿色(除了薄的黑色边框)。然后,如果我将Fill Amount栏保持从0.51变为1,并且从0到0.49为空。将Fill Amount移动到0.49和0.51之间会缩小并展开条形图的绿色部分。

Here是健康栏的层次结构。

Here是检查器中的状态栏画布。 Render ModeWorld Space。我不知道这是否与这个问题有关。我附加了一个名为Status Bar Canvas Script的脚本,但我注释掉了所有代码。

Here是检查器中的状态栏背景(黑色边框)。

Here是检查器中的遮罩(未填充的灰色条)。

Here是Inspector中的绿色条。

This就是结果。

This是取消选中Mask脚本后的结果。

似乎问题与Unity如何在场景中缩放我的“内容”对象有关,但我无法弄清楚它实际上在做什么。

1 个答案:

答案 0 :(得分:0)

掩膜支架和FillAmount预制件都必须包含UI Image组件和sprite。 MaskHolder将有掩码精灵,Content将有健康栏精灵。 MaskHolder中还会包含Mask个组件,并且会选择Show Mask Graphics。您的层次结构设置应如下所示:

enter image description here

不应仅仅为健康栏使用画布。