我有一个统一的应用程序。当用户将鼠标悬停在对象上时,我想更改鼠标图像。那么,我想知道如何在unity3d中使部分图像透明?如果我直接使用 .png 图片,鼠标看起来如下图:
我不想显示灰色区域。我该怎么办?
在 Unity 的资源管理器中,如果单击 .png 图像,您应该能够选择纹理类型。绝对有可能拥有透明的纹理。 您还应该简单检查是否保存了具有透明度的 png 图像
使用非透明着色器时透明度显示黑色,因此这不是您的情况。您的图像似乎是 jpg,因此它没有透明度(仅限 RGB)。
Unity不使用jpg并将它们转换为png,但由于原始图像无论如何都没有透明度,因此原始图像中是白色像素,png转换中是白色像素。
您需要在 Gimp 或 Photoshop 中重新处理图像,以删除无用的灰色部分,并确保将其另存为 png,以便存储透明度 (RGBA)。
这是一个老问题,但我想人们可能会喜欢最新 Unity 版本的更现代的解决方案(就像我一样)。
Unity 现在支持 Shaders Graphs,这意味着您可以创建一个着色器,为通常没有 Alpha 通道(如 jpg 或 gif)的图像中的选定颜色提供透明度。
当然,如果您要创建图像,只需制作带有 alpha 通道的 .png,但有时免费资源需要进行一些调整(因为您没有创建它们):
瞧!
我对这个着色器图很陌生,但它看起来真的非常有前途。
如果一切顺利,你最终会得到这样的材料:
我在 Paint 3D 中打开图像。进行魔法选择。剪切结果并粘贴到新的 Paint 3D 项目中。另存为图像并勾选透明度。
无论它来自哪里,无论原始图像的格式如何,这些似乎每次都有效。