代码之家  ›  专栏  ›  技术社区  ›  user8445415

在运行时创建unity材质[重复]

  •  1
  • user8445415  · 技术社区  · 7 年前

    我制作了一种自定义的文本语言,如YAML,其语法很简单,如下所示。

    object : Health : NUMBER : 1.0f (this's a comment)
    object : WeaponColor : U_MATERIAL : Diffuse : TEX_BRICK : 55 : 55 : 55 : 255 (creates a new instance of a unity material with the specified parameters)
    

    上一个示例使用值数组创建对象 1个浮子和1个统一材质 其中,数字的值为1.0,材质使用传统漫反射着色器,该着色器具有名为TEX\u BRICK的纹理和值为55 55 55 255的rgb颜色。

    问题是如何在运行时创建新材质?我是不是写了这样的东西。。。

    var mat = new Material("shader name", color, etc, ...)
    

    或者无法在运行时创建材质?

    我使用C#和unity 2018.1.0b5

    1 回复  |  直到 7 年前
        1
  •  0
  •   AustinWBryan ravenspoint    6 年前

    检查 this .

    可以先创建指定着色器的材质。这将是传统漫反射。然后使用:

    material.SetTexture("_MainTex", thetexture)
    

    以及:

    material.SetColor(r, g, b, a);
    

    设置主纹理和颜色。