问题:
1.刚开始把protobuf的文件夹直接从其他项目里(unity2021)里复制到unity(2020)版本,当时报错protobuf.dll的依赖项system.memory版本不对。
2.没有使用原来的protobuf文件了。使用vs2019的NuGet管理包来下载Google.Protobuf ,仍然报错找不到Google
3.找到Google后,报错说该platform存在多个Assembly。
解决方案:
1.解决第一个问题是从vs里直接安装protobuf。
2.第二个问题是,NuGet会把文件安装在package目录下,unity搜不到这个包。要放在Assert\Plugins目录下。
最好是先把符合该项目.NE版本的dll和xml文件都拿到,再从NuGet里把protobuf卸载。内容如图:
存放位置如图:
在使用到protobuf文件的前面加上类似代码:
#region 程序集 Google.Protobuf, Version=3.21.12.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604
// C:\gitclone\old_break_HMI3.0_SE\Assets\Plugins\google\netstandard2.0\Google.Protobuf.dll
#endregion
3.解决第三个问题,原因是该编译器有多个项目。NuGet把其他项目中也安装了protobuf,可以在文件夹搜索一下,把重复的删除即可。
Tips:注意与项目的.NET对应。
Building Setting-Player Setting-Other Settings-Configuration