在干净安装Unity3D(2018.1.1f1)之后,它安装了VS 2017(15.7.3)。 我开始使用cs脚本,并想调试一个对象“print_r”-style,所以我通过nuGet Package-Manager安装了Newtonsoft.Json 11.0.2。 如果我在pakage-console中调用“Get-Package”,它会向我显示
Newtonsoft.Json {11.0.2} Assembly-CSharp
不幸的是,当我尝试编译时,它仍然会给我带来错误:
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler CS0246 Der Typder命名空间名称“Newtonsoft”wurde nicht gefunden(möglicherweisefehlteine using-Direktive oder ein Assemblyverweis)。 Assembly-CSharp C:\ Users \ bubu \ Documents \ Therapiefilm \ Assets \ test.cs 4 Aktiv 这意味着找不到命名空间“Newtonsoft”或者缺少Assembly-Link。
但我不知道错误究竟是什么。 - (
欢迎任何提示! 问候 Rene' ps:我的脚本来源:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
public class test : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
private static void Dump(object o)
{
string json = JsonConvert.SerializeObject(o, Formatting.Indented);
Console.WriteLine(json);
}
}
答案 0 :(得分:0)
我发现合并Newtonsoft.Json的最简单方法是转到NuGet site,然后手动下载该软件包。然后,将所有文件解压缩到资产目录下的“Plugins”文件夹,即Assets / Plugins / Json.NET。
您还应该将Player Scripting Runtime版本设置为.NET 4.x.我还将我的API兼容性设置为.NET Standard 2.0。虽然虽然推荐,但并不是必需的。
答案 1 :(得分:0)
建议使用已准备好的Newtonsoft.Json分支之一,将其更改为与Unity3D兼容。它们比NuGet包更易于使用,并且与在构建到AOT目标(例如Android,iOS,WebGL等)时会在运行时失败的官方NuGet包不同,它们都支持此功能。这是前三名:
jilleJr/Newtonsoft.Json-for-Unity,Newtonsoft.Json 12.0.1-12.0.3,可通过Unity 2018.1及更高版本内置的Unity软件包管理器(UPM)获得。
SaladLab/Json.Net.Unity,Newtonsoft.Json 7.0.1-9.0.1,可通过.unitypackage
和UniGet
ParentElement's JSON .NET for Unity,Newtonsoft.Json 8.0.3,可通过Unity Assets Store购买
在撰写本文时,jilleJr的变体是唯一的活动fork。其他人已经停止开发。
的安装说明打开/Packages/manifest.json,添加jillejr的作用域,然后将包添加到依赖项列表中。
Àla:
{ "scopedRegistries": [ { "name": "Packages from jillejr", "url": "https://npm.cloudsmith.io/jillejr/newtonsoft-json-for-unity/", "scopes": ["jillejr"] } ], "dependencies": { "jillejr.newtonsoft.json-for-unity": "12.0.201", // ... } }
// ...
表示manifest.json中包含的其余软件包,例如所有"com.unity.*"
依赖项