首页 > 解决方案 > Unity3D 资产包精灵/默认着色器问题

问题描述

在构建我的第一个构建之后,我已经将我的统一从 5.5.2f1 更新到 5.5.5p2,所有包含精灵渲染器的资产,其中着色器是从云下载的“精灵/默认”(在早期的构建中完美运行)版本)看起来很奇怪——要么它们被涂抹、重复、透明,要么是我真的无法解释的更奇怪的异常......我将其缩小到仅是从捆绑包下载的资产的问题(因为那些附带的基本应用程序运行良好)并且仅在 Android 和 Amazon 上(IOS 似乎还可以)。我已经尝试通过新的统一版本从头开始创建所有捆绑包,假设它可能是构建版本和构建捆绑包的版本之间的某种不匹配,但它没有帮助......

从捆绑下载时(下载了由于某种原因现在为红色的背景,并下载了透明覆盖屏幕) 从捆绑下载时(下载了由于某种原因现在为红色的背景,并下载了透明覆盖屏幕)

它的实际外观,以及未从捆绑包下载时的外观。 它的实际外观,以及未从捆绑包下载时的外观。

我还将继续并补充说,被扭曲的图像是使用默认统一精灵/默认着色器的图像,此外,板上的符号以及绿龙头实际上显示良好,即使也被下载但它们正在使用不同的自定义着色器。自从我更新 Unity 以来,我测试过的每台 Android/Amazon 设备都会发生这种情况。任何人都知道什么会导致这种奇怪的行为?

标签: androidunity3dshaderspriteassetbundle

解决方案


所以这个答案不是一个可靠的答案,但它确实解决了我的问题,因为我一生都无法弄清楚是什么原因造成的。为了修复它,我将 Unity 升级到了 5.6.4p3 版本,并将所有包重新上传到云端。升级时对我的项目进行的唯一自动更改是所有着色器都更改了其中一行:
这一行:
o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
改为这一行:
o.pos = UnityObjectToClipPos (v.vertex);

出于某种原因,这成功了,老实说,我对着色器的了解几乎为零,这使我有能力回答导致这种情况不存在的问题。


推荐阅读