2016-05-25 104 views
2

我有一個UI圖像附加到畫布上。我有一個OnClick函數,可以在單擊圖像時更改圖像的Canvas Renderer的材質。Unity3d - 設置材料爲無

gameObject.GetComponent<CanvasRenderer>().SetMaterial(J_UI.UI.uiChosenSkillHolo,0); 

我想要第二次點擊刪除材料,以便在檢查器中看到無(材料)。我試過

gameObject.GetComponent<CanvasRenderer>().SetMaterial(null,0); 

但是圖像根本不可見,好像沒有着色器一樣。

我也嘗試將當前無(材料)記錄到Awake函數中的材質變量並使用該變量,但圖像消失。

在兩種情況下打印材質名稱均返回Null。

所以 - 有沒有什麼辦法可以處理這種神祕材料,稱爲無(材料),這是默認的檢查員,只要材料是合適的&你還沒有分配一個呢?

謝謝。

回答

1

更新:意識到我要對這個錯誤的方式,所以我會後的情況下,任何人的回答其他與此掙扎......

您需要直接更改圖像腳本的材料,不使用畫布渲染器。因此,要應用它的

gameObject.GetComponent<Image>().material = yourMaterial; 

,並刪除它的

gameObject.GetComponent<Image>().material = null; 
1

你可以試試這個:

創建一個按鈕

Button Disable Material

檢查員轉到OnClick按鈕並點擊+

拖動Imagemthe None space (Object)

enter image description here

No function選擇:

圖像>材料材料

enter image description here

點擊痘痘 「圓」(右無(材料))並選擇你想要的。

enter image description here

現在,每當你做出按鈕的點擊時間,Button Disable Material的材料將被更改爲None