unity3d 如何代码修改某个shader的颜色

 我来答
嘟噜门
高粉答主

2019-06-21 · 每个回答都超有意思的
知道小有建树答主
回答量:728
采纳率:0%
帮助的人:16.8万
展开全部

1.打开软件,新建工程如下图所示。点击创建工程按钮。

2.在层级面板中穿件Cube,在项目面板鼠标右键中创建材质,如下图所示 

3.在项目面板下创建脚本文件,如图所示

4.双击脚本文件打开,编写代码如下

5.创建标准shader,如下图所示

6.并将创建的shader替换给Cube对象

7.双击打开5中创建的Shader文件,查看参数信息(参数信息的结果是为了书写4中的代码,参见经验视频)

8.将3中的脚本附加给Cube。

9.点击运行,结果如图。

hjs19871126
推荐于2017-12-15 · TA获得超过579个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:220万
展开全部

有些Material确实没有Color属性.

选取材质球Shader的时候一定要看是否可以在监视面板中修改颜色属性.如果可以修改,基本上都可以用renderer.material.color = 颜色; 修改.

等同于 renderer.material.SetColor("_Color",颜色);

有些不能直接通过面板调试赋值修改的,就没法更改颜色.

有些获取颜色的时候报错说找不到"_Color"定义,但是可以在检视面板中更改材质球颜色,如下图:

你可以通过renderer.material.SetColor("_TintColor",颜色);来修改.

第一个参数是指定要修改的变量名.根据左下角的TintColor决定应该是什么字符串.前面加上一个英文下划线.

追问
他说找不到_TintColor。。。
追答
那你把第一个参数改成以下几个挨个试一试看看.这些都是经常碰到的.
"_MainColor",
"_SpecularColor"
"_SpecColor",
"_TextColor",
"_EmissiveColor",
如果都不行的话,那很可能就是你选择的Shader不带颜色参数.无法修改.
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leilongg1
2013-02-04 · TA获得超过2312个赞
知道大有可为答主
回答量:2683
采纳率:33%
帮助的人:2539万
展开全部
shader是一个框架,它里面带有材质和颜色等等内容
修改颜色可以用renderer.material.color
追问
为啥有些material没有颜色可改,那样好像会报错的
追答
楼上回答的很全面了
有些shader是没法改颜色的,这是出于某种限制的原因
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式