【发布时间】:2020-11-19 06:03:47
【问题描述】:
我按照这个视频创建了我的第一个着色器。 Dissolve Shader Video Link
在协程中,我从对象中获取了材质的组件:
PalaceMaterial = palaceInstance.GetComponent <Renderer> () .material;
我把参数设置为0:
PalaceMaterial.SetFloat ("_ CutoffHeight", 0);
为了达到这个效果,我不得不逐渐修改参数“CuttoffHeight” 放到Update()中
PalaceMaterial.SetFloat("_CutoffHeight", Mathf.MoveTowards(PalaceMaterial.GetFloat("_CutoffHeight"), CutoffHeight, 100 * Time.deltaTime));
我将此应用于所有对象。 每 2 秒我实例化一个“不可见对象”(CutoffHeight 设置为 0) 并在 Update() 中逐渐改变值。 现在我想将此参数更改为同时使用此着色器的所有对象。 我希望我很清楚。
我的项目视频: Project, Dissolve_Effect
我想在第一个平台上的所有立方体中同时更改“_CutoffHeight”参数,然后在第二个平台中,等等。 你有什么想法吗?
【问题讨论】:
标签: c# unity3d unity3d-shaders