2016-05-25 62 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