我想在服务器中获取我的JSON文件,然后将其反序列化为游戏对象...
所以,我确定我要使用WWW
类......
这是我的剧本
IEnumerator LoadPertanyaanData() {
WWW wwwDataFilePath = new WWW (dataFilePath);
yield return wwwDataFilePath;
string dataAsJSON = wwwDataFilePath.text;
DataController loadedData = JsonUtility.FromJson<DataController> (dataAsJSON);
allKategori = loadedData.allKategori;
}
我有一些错误:
ArgumentException:无法将JSON反序列化为类型&#39; DataController的新实例。&#39; UnityEngine.JsonUtility.FromJson [DataController](System.String json)(在C:/buildslave/unity/build/artifacts/generated/common/modules/JSONSerialize/JsonUtilityBindings.gen.cs:24) DataController + c__Iterator0.MoveNext()(在Assets / Scripts / DataController.cs:35) UnityEngine.SetupCoroutine.InvokeMoveNext(IEnumerator枚举器,IntPtr returnValueAddress)(在C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
答案 0 :(得分:1)
你的问题似乎与这一行有关:
string dataAsJSON = File.ReadAllText(wwwDataFilePath.text);
File.ReadAllText
方法采用本地文件名或路径。如果输入包含本地文件路径名中无效的某些字符,它将抛出ArgumentException
。
您似乎收到此异常,因为根据您的评论,输入字符串为http://localhost/game/data.json
,其中包含无效字符:
。
text
对象上的WWW
属性是从远程网址获取string
所需的全部内容:
string dataAsJSON = wwwDataFilePath.text;