一、问题描述
我用的Unity版本是2019.2.8f1,在导入一个新项目工程代码的时候一直报错,说我的文件命名空间引用错误,或者是程序集引用丢失等等。经过不停的排查,最后终于找到问题了,是Unity的package manger出问题了。
错如提示如下:
二、解决方案:
把通过Unity下载的package包手动的拷贝到项目工程目录下面的Packages或者Library/PackageCache下面,根据报错文件进行拷贝,不报错不需要拷贝。参考路径如下图:
三、Package Manager机制讲解(个人理解,非官方文档)
1、我们在Unity工程内通过点击Package Manager弹出框然后在里面下载的插件,Unity是会帮我们自动下载到C:\Users\用户名字\AppData\Local\Unity\cache\packages\packages.unity.com目录下面,然后在把文件拷贝一份缓存到F:\项目名字\Library\PackageCache目录下,然后再F:\项目名字\Packages目录里面的manifest.json里面记录下载的文件名字和版本号。用于工程项目管理,其他同事可以通过这个文件进行下载。
2、一般这些文件不会放到svn或git上面,而是只管理manifest.json文件,如果想管理这些文件,就可以把下载好的package文件拷贝到F:\项目名字\Packages目录里面和manifest.json同级目录就可以了。
3、上面的报错我怀疑是下载好了package,然后Unity加载的时候会把这些文件cache到Library目录下面,但是项目调用的时候出现问题了。没法加载这些package,所有尝试换一下加载路径,就可以了。
4、其实这些下载的包我们也可以放到工程内或者其他位置,然后通过package manager界面的加号来加载其他位置的插件。这样做的好处是,如果你修改了插件的脚本,Unity是不会帮你替换的,也不会帮你自动更新。如果你放到Unity官方的目录,Unity会帮你自动检查插件的版本,提示你是否进行更改。如果你想修改插件脚本,再出启动Unity的时候,Unity发现这个脚本和C盘下载的不一样,会把你的修复覆盖掉的。