public TextureAtlas makeTextureAtlas(TextAsset jsonData, Texture2D texture) { TextureAtlas atlas = TextureAtlas.CreateInstance <TextureAtlas>(); atlas.texture = texture; JObject parsed = JObject.Parse(jsonData.text); List <TextureAtlas.Item> items = new List <TextureAtlas.Item>(); foreach (JObject jItem in parsed["Base"]["items"]["Array"]) { TextureAtlas.Item item = new TextureAtlas.Item(); item.name = jItem["data"]["name"].Value <string>(); item.name = item.name.Substring(1, item.name.Length - 2); item.uvBox = new Vector4(jItem["data"]["uvBox"]["x"].Value <float>(), jItem["data"]["uvBox"]["y"].Value <float>(), jItem["data"]["uvBox"]["z"].Value <float>(), jItem["data"]["uvBox"]["w"].Value <float>()); List <int> indices = new List <int>(); foreach (JObject indexItem in jItem["data"]["indices"]["Array"]) { indices.Add(indexItem["data"].Value <int>()); } item.indices = indices.ToArray(); List <Vector2> uvs = new List <Vector2>(); foreach (JObject uvItem in jItem["data"]["uvs"]["Array"]) { uvs.Add(new Vector2(uvItem["data"]["x"].Value <float>(), uvItem["data"]["y"].Value <float>())); } item.uvs = uvs.ToArray(); List <Vector3> vertices = new List <Vector3>(); foreach (JObject vertexItem in jItem["data"]["vertices"]["Array"]) { vertices.Add(new Vector3(vertexItem["data"]["x"].Value <float>(), vertexItem["data"]["y"].Value <float>())); } item.vertices = vertices.ToArray(); items.Add(item); } atlas.items = items.ToArray(); return(atlas); }