【问题标题】:Unity3d - set material to noneUnity3d - 将材质设置为无
【发布时间】:2016-09-23 15:27:09
【问题描述】:

我在画布上附加了一个 UI 图像。我有一个 OnClick 函数,可以在单击图像时更改图像的 Canvas Renderer 的材质。

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

我想要第二次单击以删除材料,以便在检查器中看到无(材料)。我试过了

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

但图像根本不可见,就好像没有着色器一样。

我还尝试将当前的无(材料)记录到 Awake 函数中的材料变量并使用它,但图像再次消失。

在这两种情况下打印材料名称都会返回 Null。

那么 - 有没有办法处理这种称为无(材料)的神秘材料,这是检查器中的默认材料,只要材料合适且您还没有分配一个?

谢谢。

【问题讨论】:

    标签: c# unity3d shader


    【解决方案1】:

    更新:意识到我做错了,所以我会发布一个答案,以防其他人为此苦苦挣扎......

    您需要直接在Image脚本中更改材质,而不是使用画布渲染器。所以要应用它的

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

    并删除它的

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

    【讨论】:

      【解决方案2】:

      你可以试试这个:

      创建一个按钮

      Button Disable Material

      检查员转到OnClick 按钮并单击+

      Imagem拖入the None space (Object)

      No function 选择:

      图片>材质材质

      点击小“圆圈”(右无(材料))并选择你想要的。

      现在每次点击按钮,Button Disable Material 的材质都会变为None

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-24
        • 2020-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-20
        • 1970-01-01
        • 2014-08-24
        相关资源
        最近更新 更多