using UnityEngine; using System.Collections.Generic; using System; public class JsonConfigParser { // [System.Serializable] // public class TilePattern // { // [System.Serializable] // public class TileInstance // { // public Vector3 position; // public Vector2 scale; // public int textureIndex; // } // public TileInstance[] instances; // public Vector2 patternSize; // 整个模式的大小 // } [System.Serializable] public class MeshData { public int revertSeam = 0; public float[] vertices; public int[] indices; } [System.Serializable] public class TileUniformData { public float[] vTransform = { 0, 0, 0 }; public float[] vLocalTransform = { 0, 0 }; public float[] vSeamOffset = { 0, 0 }; public float[] vTextureSize = { 1, 1 }; } [System.Serializable] public class TileSeg { public float vRange; public int vSeam; } [System.Serializable] public class InstanceData { public int meshidx; public TileUniformData uniforms; public int texture; public TileSeg seg; } [System.Serializable] public class TileSizeData { public int[] size; } [System.Serializable] public class TileConfig { public List mesh; public List instances; public TileSizeData[] tileSize; public int[] size; public string[] base64Textures; public int[] tiles = {20, 20}; public int isVertical = 0; public float vSeam = 0.05f; } public static TileConfig ParseJsonConfig(string jsonConfig) { try { var config = JsonUtility.FromJson(jsonConfig); Debug.Log($"Mesh count: {config.mesh?.Count}"); Debug.Log($"Instances count: {config.instances?.Count}"); Debug.Log($"Size: {(config.size != null ? string.Join(",", config.size) : "null")}"); Debug.Log($"TileSize: {(config.tileSize != null ? config.tileSize.Length : 0)} rows"); return config; } catch (Exception e) { Debug.LogError($"Error parsing JSON config: {e.Message}"); return null; } } }