
本节内容带大家了解如何在Unity3D中使用透明材质,在本文中,将向大家介绍以下几点知识:
在Unity中创建透明材质
- 使用编辑器菜单创建材质:Asset → Create → Materials
- 选择材质并将其渲染模式属性更改为透明。

更改材质透明度
要改变透明度,必须改变材质颜色的Alpha (a) 值,可以在编辑器中使用颜色选择器来做到这一点,也可以更改此值以修改材质的透明度。
如果颜色的alpha值为0则材质是完全透明的,如果为1.0则它看起来像不透明材质,假如需要50%的透明度,则将其设置为0.5。

运行时在Unity创建透明材质
首先,将创建一个材质,默认情况下,它将是不透明的,然后将其更改为透明材质。
// create a new material
Material mat = new Material(Shader.Find("Standard"));
将材质更改为透明
使用下面的代码将材质转换为透明。
// set rendering mode to transparent
mat.SetFloat("_Mode", 3);
mat.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
mat.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
mat.SetInt("_ZWrite", 0);
mat.DisableKeyword("_ALPHATEST_ON");
mat.DisableKeyword("_ALPHABLEND_ON");
mat.EnableKeyword("_ALPHAPREMULTIPLY_ON");
mat.renderQueue = 3000;
注意:
以上代码可能无法在项目的打包构建中运行,因为Unity不包含场景中未包含的任何着色器变体。
要解决此问题,请在场景中添加一个使用透明材质的游戏对象,可以禁用此游戏对象,但它将允许在构建中包含所需的着色器变体。
在运行时更改材质透明度
更改颜色的alpha值以更改透明度。
MeshRenderer mr = GetComponent<MeshRenderer>();
Color col = mr.material.color;
col.a = value; // pass float value here
mr.material.color = col;
可以从这里下载演示项目Unity包。
要了解有关运行时材质处理的更多信息,参阅站内文章:
…
以上是3D天堂关于在Unity中如何使用透明材质的全部内容,如果你有任何反馈,请随时在本页面下方留言。