Unity 使用 Newtonsoft 报错的解决方案
问题描述
最近在做人机交互课的实验,主要开发工具选择了 Unity3D 。把做好的项目通过 git 上传后,又用 git clone 了下来来测试项目上传是否成功。结果发现 clone 回来的项目,出现了一些问题。 在项目中,我用到了 Newtonsoft.Json 这个包来处理我需要的 Json 数据。
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
在原项目中并没有出现什么问题(这里是因为之前设置了一些东西,具体我会在解决方法部分的方法一提到),但是在克隆回来的项目中 Unity3D 的控制台直接甩了个错误给我: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?) 
这是因为 Json.NET 官方没有直接支持 Unity ,导致 Unity 无法找到正确的程序集。
解决方法
下面我将给出两种解决方案,两种方案都是可行的。
方法一:使用 Unity 的 Package Manager 自动导入
在 Project 标签页中,右键点击 Packages。  在打开的菜单栏中点击 View in Package Manager 。  在打开的 Package Manager 中,点击左上角的加号,选择通过名称添加。  包名是 com.unity.nuget.newtonsoft-json ,我发这篇博客时,版本号为 2.0.2,各位读者也可以填该版本号,导入后 unity 会提示你进行更新。   添加成功后 Unity 的报错信息就消失了。
方法二:访问 GitHub 下载 unitypackage 文件手动导入
访问GitHub下载相应的支持Unity的 Newtonsoft.Json 资源包。点我跳转 
选择需要的版本进行下载(由于我使用到了 Newtonsoft.Json.Linq ,因此我需要下载的是 JsonNet.9.0.1.unitypackage )。  打开报错的 Unity 项目,双击下载好的 unitypackage 文件,使用 Unity Editor 打开。  将所有包都勾选好点击“导入”即可。此时 Unity 会重新编译一遍脚本。  编译成功后你就会发现控制台里已经没有报错的信息了。 
|