Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 使具有相同着色器的多个对象在不同时间淡入淡出_Unity3d_Shader_Mesh - Fatal编程技术网

Unity3d 使具有相同着色器的多个对象在不同时间淡入淡出

Unity3d 使具有相同着色器的多个对象在不同时间淡入淡出,unity3d,shader,mesh,Unity3d,Shader,Mesh,我的一个游戏对象有一个死亡变换,它从一个球形球变成了一堆小的独立块。我想在不同的时间淡出这些块中的每一块,但由于它们都使用相同的着色器,我似乎无法想出如何使它们不同时淡出 第一张图片是球形球的第一步,当它从一个球形球变成一个Minecraft’ish look的方块球时,右边是组成Minecraft’ish look球的方块之一,如红色箭头所示。 现在,这是我的检查员,他负责一个小木块,这个小木块构成了一个看起来像雷管的球。 我有一个箭头指向使对象淡入淡出的原因,但这是全局性的,因为它们使用

我的一个游戏对象有一个死亡变换,它从一个球形球变成了一堆小的独立块。我想在不同的时间淡出这些块中的每一块,但由于它们都使用相同的着色器,我似乎无法想出如何使它们不同时淡出

第一张图片是球形球的第一步,当它从一个球形球变成一个Minecraft’ish look的方块球时,右边是组成Minecraft’ish look球的方块之一,如红色箭头所示。

现在,这是我的检查员,他负责一个小木块,这个小木块构成了一个看起来像雷管的球。


我有一个箭头指向使对象淡入淡出的原因,但这是全局性的,因为它们使用相同的着色器。是否可以分别对每个块进行淡入淡出,或者我被卡住了,需要为小块玩偶找到一个新的消失动作?

您需要在运行时通过脚本修改材质属性,并且需要通过
Renderer.material
属性进行修改。当您访问
Renderer.material
时,Unity将自动为您创建一份单独处理的材质副本——如果您关心性能,还包括获取自己的绘制调用。可以看出发生了这种情况,因为渲染器中的材质名称将更改为“Materialname(Instance)”


使用
Renderer.material.SetFloat()
(或任何适当的
Set…
函数)设置材质的淡入淡出属性。不幸的是,该属性的名称不是“淡入淡出因子”。您可以通过查看着色器脚本,或将检查器切换到调试模式,并在保存的属性数组中查找一个看起来正确的属性来找到属性名称。

听起来不错,Gabriel,我将试一试。也谢谢你的快速回复。效果很好加布里埃尔·西布利。非常感谢你的帮助。