Unity3d UGUI半透明或线性渐变图片显示不正常(模糊)问题解决(颜色空间不匹配)

博客讨论了在Unity中UGUI组件上透明渐变图片出现模糊的问题。问题源于颜色空间设置,工程被设置为Linear导致。解决方案是将颜色空间改为Gamma,但这可能影响场景的渲染效果。另一种方法是在PS中使用线性空间制作图片以保持一致性。此外,文章还提供了高级解决方法的链接,并强调了颜色空间在Unity中对于图像质量的重要性。
摘要由CSDN通过智能技术生成

问题

如题的问题,之前没遇到过,透明渐变的图片在预览和各种软件上查看都很正常,但是放入UGUI上就有模糊的问题。
在Inspector上(正常):

在这里插入图片描述

放到UGUI下:
在这里插入图片描述

各项设置都是默认:
在这里插入图片描述

解决方法

花了大半天时间才找到问题的点是颜色空间(Color Space)
这里给两种程序最省事的方法,嘎嘎。
在这里插入图片描述

修改为Gamma

因为我的工程是渲染给的工程,他修改过颜色空间为Linear,修改为Gamma后图片模糊的问题解决:
在这里插入图片描述

但是场景渲染效果可能有折扣,这个需要自己去协调。

设计工具颜色空间

要在PS上使用线性空间制作,因为PS默认是使用Gamma空间的,转为线性空间,在Unity内部就是统一空间下制作的,就不需要转换了。设置参考如下:
在这里插入图片描述

其它

参考了这位大师的方法:https://zhuanlan.zhihu.com/p/348382979
包含了其它高端的方法。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Unity3D,uGUI是一个用户界面系统,它可以让开发者创建和管理游戏的UI元素,如按钮、文本等。在uGUI,世界坐标是指相对于场景原点的坐标系,而屏幕坐标是指相对于屏幕的坐标系。 在实际运用,我们可以通过以下方式将世界坐标转换为屏幕坐标: ```csharp Vector3 worldPosition = new Vector3(10, 5, 0); Vector3 screenPosition = Camera.main.WorldToScreenPoint(worldPosition); ``` 这里我们使用了Camera.main.WorldToScreenPoint()方法,将世界坐标转换为屏幕坐标。这个方法需要指定一个摄像机,它将根据该摄像机的位置和朝向来计算屏幕坐标。在这个例子,我们使用的是场景的主摄像机,也就是Camera.main。 同样地,我们也可以将屏幕坐标转换为世界坐标: ```csharp Vector3 screenPosition = new Vector3(100, 100, 0); Vector3 worldPosition = Camera.main.ScreenToWorldPoint(screenPosition); ``` 这里我们使用了Camera.main.ScreenToWorldPoint()方法,将屏幕坐标转换为世界坐标。同样地,这个方法也需要指定一个摄像机。 在实际开发,我们可以使用这些方法来处理鼠标点击、UI元素的位置调整等操作。例如,我们可以通过以下代码来将一个UI元素移动到鼠标点击的位置: ```csharp public void OnPointerClick(PointerEventData eventData) { Vector3 worldPosition = Camera.main.ScreenToWorldPoint(eventData.position); transform.position = worldPosition; } ``` 这里我们使用了Unity3D的事件系统,当鼠标点击时,OnPointerClick()方法会被调用。在这个方法,我们通过Camera.main.ScreenToWorldPoint()方法将屏幕坐标转换为世界坐标,然后将UI元素的位置设置为该世界坐标。这样,当我们点击鼠标时,UI元素就会移动到鼠标点击的位置。 总之,在uGUI,世界坐标和屏幕坐标的转换是非常重要的,它们可以帮助我们处理一些常见的UI操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十幺卜入

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值