2017-02-19 48 views
0

我有一個用戶界面的畫布,畫布的大小相同。該圖像有一個rgba0,0,0,0,使其不可見(因爲a爲0)。我想讓圖像從腳本中變成黑色。這裏是我使用的代碼:無法在腳本中更改圖像的alpha值?

public class NavigationC : MonoBehaviour { 
    public Image screen; 
    float fadeTime = 3f; 
    Color colorToFadeTo; 

    void StartGame() 
    { 
     colorToFadeTo = new Color(0f, 0f, 0f, 255f); 
     screen.CrossFadeColor(colorToFadeTo, fadeTime, true, true); 
    } 
} 

現在,這在執行時不執行任何操作。但是,當我以統一方式手動更改圖像的a值以便圖像變爲可見時,我可以看到腳本更改圖像的顏色。所以腳本確實有效,它不可見,因爲a值沒有被腳本改變。 那麼我怎樣才能讓圖像從不可見變成黑色呢?

回答

5

這裏是你的問題:

新顏色(0F,0F,0F,255F);

Color構造函數的參數需要從0f1f值,但你0f255f範圍值傳遞給它。

這應該是:

colorToFadeTo = new Color(0f, 0f, 0f, 1f); 

如果你想使用0255範圍,則必須通過255分攤。

colorToFadeTo = new Color(0f, 0f, 0f, 255f/255f); 
+0

那麼,爲什麼255f能**完美地**當我給圖像開始時的顏色? – RnRoger

+0

我在嘗試1f之前去255f,1f也沒有工作。 – RnRoger

+0

現在我甚至無法得到255f或任何其他值的工作,即使我給圖片開始時的顏色;它只是跳到黑色或根本沒有改變。 – RnRoger