Unity 升级到 2022 踩坑记录(URP / 黑屏 / HTTP)
记录项目从旧版本升级到 Unity 2022 过程中遇到的几个典型问题及解决方案。
问题一:Package Manager 只有 Remove 按钮,无法下载 URP
现象:升级 Unity 版本后,打开 Package Manager,URP 包只显示 Remove,点击后也无法重新下载安装。
原因:原项目对 URP 进行过源码修改,升级后残留了本地嵌入式包目录:
{项目根目录}/Packages/com.unity.render-pipelines.universal@xx.x.x |
解决方案:
- 删除
Packages/目录下的com.unity.render-pipelines.universal@xx.x.x文件夹 - 从
Library/PackageCache/目录中找到对应版本的 URP 文件夹,复制到Packages/目录下 - 将复制过来的文件夹名末尾的
@xx.x.x版本后缀删除
这样插件就恢复为本地源码模式,可以正常编辑修改。
问题二:Android 出包运行黑屏,URP NullReferenceException
现象:升级后打出 APK,运行时黑屏,Logcat 报错:
Non-fatal Exception: java.lang.Exception: NullReferenceException : Object reference not set to an instance of an object. |
原因:Unity 2022 的 URP 在初始化 Blue Noise Texture 时存在空引用问题。
参考讨论:Unity Forum - Null reference in URP’s SetupPerFrameShaderConstants
解决方案:
- 在 Project 窗口中找到
UniversalRenderPipelineAsset.asset - 在 Inspector 中取消勾选 LOD Cross Fade
- 确认下方的 LOD Cross Fade Dithering Type 变为灰色(不可选)即可
问题三:HTTP 请求失败(Unity 2022 默认禁用 HTTP)
现象:升级后 Android 包内的 HTTP 请求全部失败,网络功能异常。
原因:Unity 2022 默认禁用了明文 HTTP 协议,仅允许 HTTPS。
解决方案:
打开 Edit → Project Settings → Player,切换到 Android 平台,找到:
Other Settings → Configuration → Allow downloads over HTTP
将选项改为允许即可。
建议:长期来看应将接口迁移到 HTTPS,HTTP 存在安全风险,此配置仅作临时过渡使用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 崎径 其镜!



