将着色器添加到游戏对象

Posted

技术标签:

【中文标题】将着色器添加到游戏对象【英文标题】:Adding a shader to a gameobject 【发布时间】:2012-11-06 14:30:30 【问题描述】:

如何向游戏对象添加着色器? a 在这里定义了一个着色器:

(我正在尝试做同样的事情,但遇到了一些问题):http://answers.unity3d.com/questions/175692/getpixelsetpixels-or-stencil-eraser-brush.html

和2个texture2D在代码中定义并通过Resource.Load加载,分配给一个游戏对象。如何将着色器应用到我的游戏对象并与两个纹理进行通信?

如您所见,我的着色器中有这段代码

_MainTex("Main Texture (rgb)", 2D) = "white" 
_Color ("Main Color", Color) = (1,1,1,1)
_Stencil("Stencil Texture (a)", 2D) = "white" 

我如何告诉着色器谁是主纹理和模板纹理?

【问题讨论】:

【参考方案1】:

要应用着色器,您需要一个材质。

您可以通过在项目视图中单击“创建”来创建材质。

如果您使用给定链接中的着色器代码,则在选择材质时,着色器应位于检查器的着色器下拉列表中,位于“自定义”下。

您可以通过代码或在检查器中更改主纹理或其他属性。

请看这里: http://docs.unity3d.com/Documentation/ScriptReference/Material.SetTexture.html

【讨论】:

以上是关于将着色器添加到游戏对象的主要内容,如果未能解决你的问题,请参考以下文章

如何在着色器之间实时切换?

如果几何着色器处于活动状态,如何将信息从顶点着色器传递到片段着色器?

使用着色器绘制 3D 对象的正确方法是啥?

[2D凹凸映射-Monogame

对象的着色器线框

无法将着色器链接到 OpenGL 中的程序对象,无法调试