using UnityEngine; using UnityEditor; using System.IO; using System; public class jiexi {//第一种解析方法, [MenuItem("Tool/jiexi")] static void Creat() { string path = Application.dataPath + "/jsondata.json"; if (!File.Exists(path))//判断路径是否存在 { return; } string s = File.ReadAllText(path); objxl ox = JsonUtility.FromJson<objxl>(s);//从json文件中解析 for (int i = 0; i < ox.list.Count; i++) { GameObject ob = GameObject.CreatePrimitive((PrimitiveType)Enum.Parse(typeof(PrimitiveType), ox.list[i].name));//字符串转枚举 ob.transform.position = ox.list[i].pos; ob.transform.eulerAngles = ox.list[i].rot; ob.transform.localScale = ox.list[i].sc; } } }
using UnityEngine; using System; using System.IO; public class jiexi2 : MonoBehaviour { // Use this for initialization void Start () { string path = Application.dataPath + "/jsondata.json"; if (!File.Exists(path)) { return; } string s = File.ReadAllText(path); objxl ox = JsonUtility.FromJson<objxl>(s); for (int i = 0; i < ox.list.Count; i++) { GameObject ob = GameObject.CreatePrimitive((PrimitiveType)Enum.Parse(typeof(PrimitiveType), ox.list[i].name));//字符串转枚举 ob.transform.position = ox.list[i].pos; ob.transform.eulerAngles = ox.list[i].rot; ob.transform.localScale = ox.list[i].sc; } }
[System.Serializable] public class objxl {//用list来存对象信息 public List<objinfo> list = new List<objinfo>(); }
[System.Serializable] public class objinfo//对象信息 { public Vector3 pos; public Vector3 rot; public Vector3 sc; public string name; }