小编Seb*_*rty的帖子

Unity Shader Graph - 如何更改参数 --- 如何同时更改所有对象上的网格的参数?

我按照这个视频创建了我的第一个着色器。溶解着色器视频链接

在协程中,我从对象中获取了材质的组件:

PalaceMaterial = palaceInstance.GetComponent <Renderer> () .material;
Run Code Online (Sandbox Code Playgroud)

我将参数设置为0:

PalaceMaterial.SetFloat ("_ CutoffHeight", 0);
Run Code Online (Sandbox Code Playgroud)

为了达到这个效果,我不得不修改参数“CuttoffHeight”,逐渐将其放入Update()中

 PalaceMaterial.SetFloat("_CutoffHeight", Mathf.MoveTowards(PalaceMaterial.GetFloat("_CutoffHeight"), CutoffHeight, 100 * Time.deltaTime));
Run Code Online (Sandbox Code Playgroud)

我将其应用于所有对象。每 2 秒我实例化一个“不可见对象”(CutoffHeight 设置为 0),并在 Update() 中逐渐更改值。现在我想将此参数更改为同时使用此着色器的所有对象。我希望我说清楚了。

我的项目视频: 项目Dissolve_Effect

我想同时更改第一个平台中的所有立方体中的“_CutoffHeight”参数,然后更改第二个平台中的所有立方体,等等。您有什么想法吗?

c# unity-game-engine unity3d-shaders

1
推荐指数
1
解决办法
8070
查看次数

标签 统计

c# ×1

unity-game-engine ×1

unity3d-shaders ×1