【发布时间】:2019-10-05 04:56:59
【问题描述】:
附上的图片总结了它。右边是我想要的。左边是我得到的。颜色不对。 (左脸图像来自在 Unity 中运行的游戏的截屏。右脸图像是我在屏幕截图顶部粘贴正确的艺术以进行比较)
我从OnGUI() 调用的用于覆盖面部图像的代码:
GUI.DrawTextureWithTexCoords(toRect, texture, fromRect);
有问题的纹理来自 Photoshop 保存的 1024x1024 PNG。当我打开这个 PNG 时,它的颜色是正确的,但在 DrawTextureWithTexCoords 将它呈现到屏幕上时却没有。我尝试了不同的 Photoshop 导出设置和纹理导入设置,但无济于事。如果我错过了那里的东西会很好,但我似乎已经没有旋钮可以旋转了。
出于故障排除的目的,我将纹理拖到场景中,并将其作为材质应用到网格表面。纹理在网格上以正确的原始颜色显示。 (注意 - 这不是我想要做的事情。我需要纹理出现在 GUI 中,而不是在场景中。)
据我所知,没有任何代码可以处理纹理或执行会影响渲染的操作。我尝试关闭后处理作为测试,但它不会影响 GUI。
这是在 2015 IMac 上运行 Unity 2019.1.13f1。我还在下面的纹理导入设置中包含了 Inspector 的照片。还有几乎原始纹理PNG(添加了水印)。
如何让面部艺术以正确的颜色呈现?
【问题讨论】:
-
您能否提供导入资产的检查器值?过滤和格式?
-
我绝对会的,感谢您的提问。我需要一点时间才能回到它 -
-
另外,如果只是将纹理资源拖到场景中,它会正确显示吗?还是看起来和 DrawTexture 一样?
-
尝试使用 Update() :D
-
OnGUI 每帧调用很多很多次。我不知道这是否是真正的原因,但它可能很简单,就像同一帧上的多个渲染使颜色过饱和一样。