德布罗煜
Unity使用Newtonsoft报错的解决方案

Unity使用Newtonsoft报错的解决方案

最近在做人机交互课的实验,主要开发工具选择了 Unity3D 。把做好的项目通过 git 上传后,又用 git clone 了下来来测试项目上传是否成功。结果发现 clone 回来的项目,出现了一些问题。

Unity 使用 Newtonsoft 报错的解决方案

问题描述

在项目中,我用到了 Newtonsoft.Json 这个包来处理我需要的 Json 数据。

1
2
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 会重新编译一遍脚本。
在这里插入图片描述
编译成功后你就会发现控制台里已经没有报错的信息了。
在这里插入图片描述

本文作者:德布罗煜
本文链接:https://kira.host/blog/Unity使用Newtonsoft报错的解决方案/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可