Unity3D 用脚本控制Shader参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D 用脚本控制Shader参数相关的知识,希望对你有一定的参考价值。

void Update () this.renderer.material.SetFloat("Progress", 0.5f); 这样不行 反正我试没有效果

参考技术A 不知道这个shader是你找的还是自己写的,这个显示在面板上的
"Progress"只是一个注释,并不是这个属性的调用名字。比如你要改颜色,要调用"_Color",而不是"Main
Color"
很可能写成
this.renderer.material.SetFloat("_Progress",
0.5f);
就可以了

Unity3D 用脚本控制Shader参数

void Update ()
this.renderer.material.SetFloat("Progress", 0.5f);

这样不行 反正我试没有效果

Unity3D用脚本控制Shader参数是:this.renderer.material.SetFloat("_Progress", 0.5f);

Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。

shader就是专门用来渲染3D图形的一种技 术,通过shader,程序设计人员可以自己编写显卡渲染画面的算法,使画面更漂亮、更逼真。

参考技术A 打开Shader看看 你的变量应该前面还有一个“_” 应该是 this.renderer.material.SetFloat("_Progress", 0.5f); 参考技术B 不知道这个shader是你找的还是自己写的,这个显示在面板上的 "Progress"只是一个注释,并不是这个属性的调用名字。比如你要改颜色,要调用"_Color",而不是"Main Color"
很可能写成
this.renderer.material.SetFloat("_Progress", 0.5f);
就可以了本回答被提问者和网友采纳
参考技术C 使用如下代码
GetComponent<MeshRender>().Material.SetFloat("_MyShaderVector1",0.5f);

以上是关于Unity3D 用脚本控制Shader参数的主要内容,如果未能解决你的问题,请参考以下文章

unity3d怎么控制优先级

扩展Unity3D编辑器的脚本模板

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

unity3d里用脚本改变一个物体的大小比例怎么写脚本谢谢?

unity3d中shader cg程序的自发光怎么写

unity shader Offset Factor, Units详解