【Unity】关于升级到2021.3.12之后URP编译错误的问题

        前几天,我一时兴起,把Unity从2021.3.11 LTS 升级到 2021.3.12 LTS,本来以为不会有啥区别,然后意想不到的是,居然出现了编译错误:        

        我一开始以为这个就是我的工程设置有问题,然后我就就新建了一个Unity的URP示例工程:

         然后果然还是重现了上述问题,那就不是我本身工程的问题了,属于Unity自带的问题。然而这样反而更离谱了!

        我在网上看了一圈,发现国内还没有人报过这个问题,但是外国论坛上有的用户也遇到了相似的问题,比如这个:

Bug – Updating URP causes compiler errors (as always) – Unity ForumI updated URP from 12.1.6 to 12.1.7 and I'm getting some errors…[ATTACH]Edit: Oh and Shader Graphs and Visual Effect Graphs Versions are the…https://forum.unity.com/threads/updating-urp-causes-compiler-errors-as-always.1331604/        然而并没有人理他……

        也有的是不同的Unity版本,可以通过升级之类的就能解决了。但是我这个目前无论是Unity还是URP都是最新版本的,所以并不能这么解决。

        也有的说通过 Reset Packages to defaults 就能解决。我试过,这个方案确实能解决,他把URP干掉了当然就解决了……

        值得说的是,他这个URP12.1.7的包并不是在Unity的 GlobalCache 里面缓存的,我目测是内置在编辑器里的(类似于Build In),所以也无法通过重新下包来解决这个问题。即便删掉Library目录下的 Package 缓存,也是没有用的。

        然后我仔细看了下他的编译错误,我这里截取其中一个:

         library\packagecache\com.unity.render-pipelines.core@12.1.7\runtime\lighting\probevolume\probereferenevolume.streaming.cs(24,77): error cs0246: the type or namespace name 'cellinfo' could not be found (are you missing a using directive or an assembly reference?)

        这个就是说 CellInfo找不到嘛……然而这个确实不知道是个啥东西。

        我也看了其他的几个报错,基本都是说的在URP内部包的错误。你可以理解为URP的代码没有完整上传,或者删掉了其中几个类。这种属于低级错误了,这种编译错误都不需要测试人员,编译器自己就能检查出来,纯纯的语法错误。

        不过不纠结了。

        最后只有一个解决方案了:

        降级Unity到 2021.3.11。

        总之就是离谱吧。

        我看了下降级后的工程,确实没有报错了,然后URP的版本也依然是12.1.7。看来就是Unity新的安装包里内置的URP包有问题,不是URP本身的问题。

        如果是在是要用新版本的Uinty,看来只有把2021.3.11的URP拷贝出来,然后在2021.3.12里面用。

        (不会Unity 发包的时候都没测试过吧……)

      

        PS:2021.3.12 、 2020.3.41 这两个版本升级风险较高。Unity 修改了一些接口,并且与原来的不兼容,总之,谨慎!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注