更改线渲染器 alpha 统一

rus*_*Bay 1 renderer unity-game-engine

Unity的线条渲染器组件有一个要附加的材质,以便线条渲染器使用它来相应地在场景中显示线条渲染器:

在此输入图像描述

问题是,如果您更改此材质颜色,它会起作用,并且在运行时也可以在编辑器本身中更改它。但阿尔法却并非如此。它在编辑和代码中都不响应。我试过:

Color targetColor = new Color(0,0,0,a);
_unityEngineLineRender.sharedMaterial.SetColor("Color", targetColor);
Run Code Online (Sandbox Code Playgroud)

和:

Color targetColor = new Color(0,0,0,a);
_unityEngineLineRender.sharedMaterial.color = targetColor;
Run Code Online (Sandbox Code Playgroud)

但它不起作用。这么简单的事情能做到吗?如果是这样,怎么办?

提前致谢

小智 7

您的材质的着色器可能不支持 Alpha,这就是您没有获得任何透明度的原因。

解决方法是编写您自己的着色器或使用 Unity 内置的其他着色器。

为您的线条渲染器创建一个新材质,然后选择着色器“粒子/标准未点亮”,将“渲染模式”设置为“淡入淡出”。然后在线条渲染器上使用它来代替默认材质。

您可以使用以下方式访问颜色:

renderer.material.SetColor("_Color", new Color(1f, 1f, 1f, 0.3f));
Run Code Online (Sandbox Code Playgroud)