我想創建一個使用蒙版的2D UI健康欄。我有一個黑色的背景圖像,一個健康欄的完整部分的綠色健康欄圖像,以及健康欄的耗盡部分的灰色蒙版圖像。黑色背景大小約爲1 x 1,綠色和灰色部分稍小,因此黑色背景的一小部分在健康條的邊緣周圍可見。從UI蒙版奇怪的行爲
當我將健康欄添加到我的場景中時,我只能看到黑色背景。如果我關閉Mask
腳本,綠色部分會顯示。最奇怪的是,如果我將綠色部分的寬度增加到50這樣的大數目,那麼整個酒吧變成綠色(除了黑色的薄邊框)。然後,如果我更改Fill Amount
,酒吧會保持從0.51到1的完整度,並且從0到0.49爲空。將Fill Amount
在0.49和0.51之間移動會收縮並展開條的綠色部分。
Here是健康欄的層次結構。
Here是檢查器中的狀態欄畫布。 Render Mode
是World Space
。我不知道這是否與這個問題有關。我附有我自己的腳本Status Bar Canvas Script
,但我註釋掉了所有的代碼。
Here是檢查器中的狀態欄背景(黑色邊框)。
Here是檢查器中的遮罩(未填充的灰色條)。
Here是檢查員的綠色欄。
This是結果的樣子。
This是結果看起來像是如果我取消選中Mask
腳本。
看起來問題與Unity如何在場景中縮放我的「內容」對象有關,但我無法弄清楚它實際上在做什麼。
你是什麼意思,我不應該使用畫布只是爲了健康吧。我不需要畫布來繪製UI元素,而不使用'OnGUI'(這似乎被推薦使用)?我對Unity很陌生,所以也許我是誤解。 –
一個畫布可以根據需要將大多數UI對象作爲子項,例如按鈕,背景,文本。可以在畫布中創建空的'Rect'對象,該對象中有單個面向任務的對象作爲一個組進行處理。所以每當你需要按鈕激活按鈕保持對象。例如,當您需要將這兩個屏幕空間(如相機和疊加)放在一起時,都需要使用多畫布。您可以將大部分UI對象保留在一個畫布中。不需要僅用於健康欄的畫布。它可以是圖像或空的對象,只是將健康欄作爲用於其他建議的同一畫布的孩子 –