一、问题描述
这篇文章主要介绍解决Unity在线性空间下,UGUI UI对于带Alpha半透明的贴图,在混合颜色时就会出现错误的问题,出现半透明或线性渐变图片显示不正常(模糊)问题解决(颜色空间不匹配),如下图:

理解问题本质
- Gamma 空间:颜色亮度是非线性的,Photoshop 默认在 Gamma 空间工作。
- Linear 空间:颜色亮度是线性的,Unity 会对贴图进行额外的 Gamma 校正。
- 发光效果(外发光、内发光)是半透明叠加,在不同空间下颜色混合方式不同,直接导出会出现颜色偏差。
二、解决方案
方法1、颜色空间从【Linear】改为【Gamma】
如下图:【File】—【Build Setings】—【Player Settings】—【Play】—【Other Settings】—【Color Space】

调整后效果如下图,画面正常

方法二、设计工具颜色空间
要在PS上使用线性空间制作,因为PS默认是使用Gamma空间的,转为线性空间,在Unity内部就是统一空间下制作的,就不需要转换了。设置参考如下:


但是这个会存在一个问题,PS调出来的颜色会比原本的亮,因为做了转换。所以需要制作UI相关的同事需要一段时间去适应。如果项目中间临时换做法,支持第一种,因为改成这种做法成本比较高,一般美术领导不会同意,而且第一种做法消耗也不高,可自行测试。
方案3、在PS中,将背景框图层和Alpha半透明的贴图图层合并成一张图导出。

注意:其它方案可查阅参考链接。


