2016-05-25 4 views
2

У меня есть изображение пользовательского интерфейса, прикрепленное к холсту. У меня есть функция OnClick, которая изменяет материал Canvas Renderer для изображения при нажатии.Unity3d - набор материала к никому

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

Я хочу, чтобы 2-й щелчок, чтобы удалить материал, чтобы в инспекторе вы видели None (Material). Я пробовал

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

но изображение не видно вообще, как если бы не было шейдеров.

Я также пробовал записывать текущий None (Material) в переменную материала в функции Awake и использовать это, но снова изображение исчезает.

Печать названия материала в обоих случаях возвращает Null.

Итак - есть ли способ получить ручку на этом материале тайны, называемом None (Material), который по умолчанию используется в инспекторе, где подходит материал & вы еще не назначили его?

Спасибо.

ответ

1

Update: понял, что я буду об этом не в ту сторону, так что я выложу ответ в случае, если кто-то борется с этим ...

Вы должны изменить материал в сценарии изображения непосредственно, а не используйте средство рендеринга холста. Таким образом, чтобы применить это

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

и удалить его

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

Вы можете попробовать это:

кнопку Создать

Button Disable Material

Инспектор перейти к кнопке OnClick и нажмите +.

Перетащите Imagem в the None space (Object)

enter image description here

В No function выберите:

Image> Материал Материал

enter image description here

Нажмите на LITLE "круг" (правый нет (Материал)) и выберите то, что вы хотите.

enter image description here

Теперь каждый раз, когда вы сделали щелчок на кнопке, Button Disable Material материал будет изменен на None

Смежные вопросы