ue3dUnity使用透明材质教程

Unity使用透明材质教程

分类:
ue3d - Unity使用透明材质教程

本节内容带大家了解如何在Unity3D中使用透明材质,在本文中,将向大家介绍以下几点知识:

在Unity中创建透明材质

  1. 使用编辑器菜单创建材质:Asset → Create → Materials
  2. 选择材质并将其渲染模式属性更改为透明。
ue3d - Unity使用透明材质教程

更改材质透明度

要改变透明度,必须改变材质颜色的Alpha (a) 值,可以在编辑器中使用颜色选择器来做到这一点,也可以更改此值以修改材质的透明度。

如果颜色的alpha值为0则材质是完全透明的,如果为1.0则它看起来像不透明材质,假如需要50%的透明度,则将其设置为0.5。

ue3d - Unity使用透明材质教程

运行时在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中如何使用透明材质的全部内容,如果你有任何反馈,请随时在本页面下方留言。

相关信息

  • 类型:知识
  • 字数:524
  • 字符:2086
  • 适用软件:Unity
  • 说明:无
  • 编号:156831

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!