Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 如何在脚本中访问unity着色器属性?_Unity3d_Shader - Fatal编程技术网

Unity3d 如何在脚本中访问unity着色器属性?

Unity3d 如何在脚本中访问unity着色器属性?,unity3d,shader,Unity3d,Shader,我想访问两个属性\u Color和\u Color2,并想使用脚本更改值,因为我们可以看到值的格式是(1,1,1),因此如何更改它的基本颜色值 Shader "Custom/SpriteGradient" { Properties { [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {} _Color("LeftColor", Color) = (1,1,1,1)

我想访问两个属性
\u Color
\u Color2
,并想使用脚本更改值,因为我们可以看到值的格式是
(1,1,1)
,因此如何更改它的基本颜色值

Shader "Custom/SpriteGradient" 
{
    Properties
    {
        [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
        _Color("LeftColor", Color) = (1,1,1,1)
        _Color2("RightColor", Color) = (1,1,1,1)
        _Scale("Scale", Float) = 1

        _StencilComp("Stencil Comparison", Float) = 8
        _Stencil("Stencil ID", Float) = 0
        _StencilOp("Stencil Operation", Float) = 0
        _StencilWriteMask("Stencil Write Mask", Float) = 255
        _StencilReadMask("Stencil Read Mask", Float) = 255
        _ColorMask("Color Mask", Float) = 15
        // see for example
        // http://answers.unity3d.com/questions/980924/ui-mask-with-shader.html
    }

    ...
}

修改了API中的示例

void Start()
{
//从该对象获取渲染器组件
var renderer=GetComponent();
//使用着色器属性名称“_Color”和“_Color2”调用SetColor,并将其颜色设置为红色
cuberender.material.SetColor(“U颜色”,Color.red);
cuberender.material.SetColor(“_Color2”,新颜色(1,0,0,1));
}

名称是指实际的属性名称,而不是显示名称。

这是否回答了您的问题?