如何在着色器中定义颜色数组属性?

时间:2016-08-25 18:22:58

标签: unity3d graphics shader

我已经看到你可以使用这种方法在Unity3D的材质中设置颜色数组:

Material.SetColorArray

在材质上设置颜色数组属性 。如果已存在具有给定名称的颜色数组属性,则替换旧值。 将数组长度添加到块后,无法更改数组长度。如果您随后尝试将较长的数组设置为同一属性,则长度将限制为原始长度,并且将忽略您尝试分配的额外项目。如果设置的数组比原始长度短,则会分配您的值,但数组元素的原始值将保留在新的较短数组的长度之外。

当我试图找到如下定义属性的问题时,问题出现了:

Properties
{
    [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
    **_Color ("Tint", Color) = (1,1,1,1)**
    [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
}

我尝试过类似的事情:

_Color ("Tint", Color[]) = []

但当然不行。我不知道如何定义它们。

P.S:我理解如何将它们定义到CGPROGRAM部分,但我们讨论的是属性。

感谢您的时间。

0 个答案:

没有答案