Unity 3D 浅谈Shader 运行时状态及渲染模式遇到的问题


当前第2页 返回上一页

1

2

3

4

5

6

7

8

Color currentcolor03 = new Color

 {

     a = 0.8f,

     r = renderer.materials[0].color.r,

     g = renderer.materials[0].color.g,

     b = renderer.materials[0].color.b

 };

 //替换目标 Color 属性就可以实现了

其实这个方法不是很好,主要是因为所给的 Shader 不能修改属性值,后来我拿到了可以更改
属性值的Shader,事情就变得简单了许多。

111.png

这是我拿到的材料,可以通过材料找到材料中包含的 Shader,里面可以看到每个值所对应的参数。

222.png

这样的话修改就只需要通过调用方法 Material.SetFloat(); 及其类似方法,括号里面是两个
参数一个是 String 类型的参数,表示通过 String 获取想要改变的参数,第二个是更改的值。

这期间我遇到一个问题,最后找了很久发现是编译器的问题,我在用第一种方法的时候,如果正常
情况下可以修改渲染模式,并且我用了三个 Color 来依次替换实现了渐变效果,但是如果我在
Hierarchy 面板中选中这个物体那么正在改变的物体就会突然变回更改之前的默认状态,或者如
果你预先选中了这个将要更改的物体他也会出现同样的效果,就是不能在编译状态下选中这个游
戏物体,不能在 Inspector 面板中查看他的渲染状态,最后我得出了一个运行时渲染的词语来
描述这个行为,
如果你在运行时更改了游戏物体 Shader 的渲染模式,那么查看他的渲染模式会导致他的渲染模
式属性重置。

以上就是Unity 3D 浅谈Shader 运行时状态及渲染模式遇到的问题的详细内容!

返回前面的内容

相关阅读 >>

C#基础入门-关键字的介绍

详细介绍C#win32控制台线程计时器代码示例

详解winform C#中子窗体关闭刷新父窗体的示例代码

C#如何删除ul及li中指定标签里文字的方法详解

详解C#常见应用函数的实例总结

分析C#httpwebrequest访问https错误处理的方法

C#中反射是什么?

C#静态分析工具 roslynator.analyzers 将方法数量提高了 500 多

C#控制台应用程序中如何输出彩色字体的详细介绍

C#利用反射根据类名创建类的实例对象的详细介绍

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...