Unity3D:无法在for循环中创建基元

问题描述 投票:0回答:1

我正在使用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);

在那儿,它甚至从未到达日志。我没有看到任何错误,也没有警告,并且我确保创建这样的对象的整个过程都可以正常工作。任何想法为什么这可能行不通?谢谢!

我正在使用JSON格式的字符串在Unity中创建一些多维数据集。这个想法很简单,但是没有用。公共无效CreateObject(字符串消息){Newtonsoft.Json.Linq.JArray ...

c# unity3d
1个回答
0
投票

我最终发现了问题-我从一个我不知道的线程中调用了这些函数。显然,Unity仅允许从主线程调用InstantiateCreatePrimitive之类的函数。这是我必须解决的问题,但这可以解释我得到的怪异行为。

© www.soinside.com 2019 - 2024. All rights reserved.