我正在尝试创建自己的JSON文件以在Unity 3D中读取,但是我无法使其正常工作。但是,我的代码可以使用我尚未创建的JSON URL很好。我该如何处理JSON以确保在Unity / C#中将其提取?
我尝试使用基本方法将Google表格导出为JSON,然后尝试使用Sheetsu,但是没有运气。它可以与示例JSON url一起使用...
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GoogleSheetJSON : MonoBehaviour
{
public GameObject GSvariable;
IEnumerator UpdateText()
{
while (true)
{
//First attempt
//string jsonUrl = "https://spreadsheets.google.com/feeds/cells/1wqo8gFMC6FHo7G3mrMVZap-eGsp1Z-nxaQ2AcAQ4dKk/1/public/full?alt=json";
//Second attempt
//string jsonUrl = "https://sheetsu.com/apis/v1.0su/f54be9f9d696";
//External JSON url
string jsonUrl = "https://jsonplaceholder.typicode.com/todos/1";
WWW googleSheetWWW = new WWW(jsonUrl);
yield return googleSheetWWW;
JSONObject tempData = new JSONObject(googleSheetWWW.text);
//First attempt
//Debug.Log(tempData["entry"]["0"]["gs$cell"]["inputValue"]);
//GSvariable.GetComponent<TextMesh>().text = tempData["entry"]["0"]["gs$cell"]["inputValue"].ToString();
//Second attempt
//Debug.Log(tempData["timestamp"]);
//GSvariable.GetComponent<TextMesh>().text = tempData["timestamp"].ToString();
//External JSON url
Debug.Log(tempData["title"]);
GSvariable.GetComponent<TextMesh>().text = tempData["title"].ToString();
yield return new WaitForSeconds(60);
}
}
void Start()
{
StartCoroutine(UpdateText());
}
}
我认为很明显,我的JSON文件管理不正确,但是我不明白为什么考虑到它们在公共URL上它们不起作用。
当我取消第二次尝试的注释时,我希望看到占位符文本“ Google Sheet =“成为“,测试4”,但在播放时出现以下Unity错误:
NullReferenceException:对象引用未设置为对象的实例 GoogleSheetJSON + c__Iterator0.MoveNext()(在Assets / Scripts / GoogleSheetJSON.cs:36处)
Screen grab of error if 'Second attempt' is uncommented Screen grab of code as described