我正在使用JSON格式的字符串在Unity中创建一些多维数据集。这个想法很简单,但是没有用。
public void CreateObject(string message)
{
Newtonsoft.Json.Linq.JArray jsonArray = Newtonsoft.Json.Linq.JArray.Parse(message);
for (int i = 0; i < jsonArray.Count; i++)
{
string jsonArrayString = jsonArray[i].ToString();
CompressorObject generator = JsonConvert.DeserializeObject<CompressorObject>(jsonArrayString);
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
Debug.Log(i);
}
}
问题是没有创建任何多维数据集。我试图登录i来确定整个操作何时终止,但这仅仅是因为我尝试创建多维数据集的那一行。反序列化按预期工作。如果我输入一个包含50个元素的字符串,则计数器将增加到49(按原样)-如果我离开了行
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
在那里,它甚至从未到达日志。我没有看到任何错误,也没有警告,并且我确保创建这样的对象的整个过程都可以正常工作。任何想法为什么这可能行不通?谢谢!
答案 0 :(得分:0)
我最终发现了问题-我从一个我不知道的线程中调用了函数。显然,Unity仅允许从主线程调用Instantiate
和CreatePrimitive
之类的函数。这是我必须解决的问题,但这可以解释我得到的奇怪行为。
编辑:我最终使用了名为UnityMainThreadDispatcher的工具,现在一切都像一个超级按钮!