Unity运行时的渲染的透明在打包后失效

网上搜的代码,修改的为unity自带的standard shader,编辑器下没问题,打包后就修改透明度失灵,解决的方法,

Edit --- project settings --- Graphics ,在其中多添加一个Standerd 的shader,打包即可(打包时长会增加)

同理,如果修改其他unity自带shader时,也需检查该面板中是否存在修改的shader(保证打包后工程可以实现透明)

转自:https://blog.csdn.net/qq_21153225/article/details/80683290

关于Unity模型运行后透明度问题[^1],如果在编辑器中透明效果正常但在打包失效,可能是因为标准shader的一些设置只在开发环境中生效。解决方案通常涉及检查Shader Graph或Material的设置,比如`Alpha Blending`(混合模式)或`Transparent`属性。 在Standard Shader中,透明度通常是通过`Color`节点的`A`通道来控制的。确保`Blend Mode`设置为`Additive`或者`Alpha blend`,并且`Alpha Is One`或`Fade`选项与你的需求相符。如果你使用的是Legacy Shaders,检查`Alpha`输入插槽的连接情况。 至于模型导出[^2],Unity提供了内置工具来进行模型导出,括对透明度的支持。以下是一个简单的示例: ```csharp // 获取场景中的第一个GameObject GameObject objToExport = GameObject.Find("YourObject"); // 获取它的MeshFilter组件 MeshFilter meshFilter = objToExport.GetComponent<MeshFilter>(); // 获取其对应的Mesh数据 Mesh mesh = meshFilter.mesh; // 创建一个新的ObjExporter实例并设置透明度信息 ObjExporter exporter = new ObjExporter(); exporter.SetMesh(mesh); exporter.SetMaterials(objToExport.GetComponentsInChildren<Renderer>().Select(r => r.sharedMaterial).ToList()); // 执行导出 string exportPath = "path/to/your/model.obj"; exporter.Export(exportPath, true); // 第二个参数表示保留贴图坐标 ``` 这只是一个基本示例,实际操作可能会根据你的模型结构和需求有所不同。记得在导出前确保透明材质的设置已正确应用于模型上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值