我使用简单的语法制作了像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 float和1 unity material 创建一个具有值数组的对象,其中数字的值为1.0,材质使用Legacy Diffuse着色器和纹理命名为TEX_BRICK和rgb颜色,值为55 55 55 255。
问题是如何在运行时创建新材料?我写这样的东西......
var mat = new Material("shader name", color, etc, ...)
或材料无法在运行时创建?
我使用C#和unity 2018.1.0b5
答案 0 :(得分:0)
检查this。
您可以先创建一个指定着色器的材质。这将是Legacy Diffuse。然后使用:
material.SetTexture("_MainTex", thetexture)
和
material.SetColor(r, g, b, a);
设置主要纹理和颜色。