public void SaveProject(string name) { ParameterizableObject parameterizable = new ParameterizableObject(); ParameterizableObjectList parameterizableObjectList = new ParameterizableObjectList(); int counter = 0; foreach (MeshEdit Model in GameObject.FindObjectsOfType <MeshEdit>()) { Debug.Log(counter); parameterizable = new ParameterizableObject(); parameterizable.setAlbedo(Model.gameObject.GetComponent <MeshRenderer>().material.GetColor("Albedo")); parameterizable.setMetallic(Model.gameObject.GetComponent <MeshRenderer>().material.GetFloat("Metallic")); parameterizable.setSmoothness(Model.gameObject.GetComponent <MeshRenderer>().material.GetFloat("Smoothness")); parameterizable.setPosition(Model.transform.position); parameterizable.setRotation(Model.transform.rotation.eulerAngles); parameterizable.setScale(Model.transform.localScale); parameterizable.setVertices(Model.GetComponent <MeshFilter>().mesh.vertices); parameterizable.setTriangles(Model.GetComponent <MeshFilter>().mesh.triangles); parameterizable.setUv(Model.GetComponent <MeshFilter>().mesh.uv); parameterizable.setId(counter); parameterizable.setName(Model.transform.name); parameterizableObjectList.ParameterizableObjects.Add(parameterizable); counter++; } string json = JsonUtility.ToJson(parameterizableObjectList, true); File.WriteAllText(Application.dataPath + "/" + name + ".json", json); }
public void LoadProject(string name) { if (Directory.Exists(Application.dataPath) && File.Exists(Application.dataPath + "/" + name + ".json")) { GameObject importOrigin = new GameObject("importOrigin"); GameObject ListElementParent = GameObject.FindGameObjectWithTag("BasicMeshes").GetComponent <CreateMesh>().InstantiateListElementParent(name, importOrigin); string load = File.ReadAllText(Application.dataPath + "/" + name + ".json"); ParameterizableObjectList parameterizableObjectList = new ParameterizableObjectList(); parameterizableObjectList = JsonUtility.FromJson <ParameterizableObjectList>(load); foreach (ParameterizableObject parameterizable in parameterizableObjectList.ParameterizableObjects) { GameObject.FindGameObjectWithTag("BasicMeshes").GetComponent <CreateMesh>().ReconstructMeshFromObject(parameterizable, ListElementParent.GetComponentInChildren <VerticalLayoutGroup>().transform.gameObject, importOrigin); } } }