Beispiel #1
0
    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);
    }
Beispiel #2
0
    public void ReconstructMeshFromObject(ParameterizableObject parameterizable, GameObject Parent, GameObject OriginObject)
    {
        Mesh mesh = new Mesh();

        mesh.vertices  = parameterizable.getVertices();
        mesh.uv        = parameterizable.getUv();
        mesh.triangles = parameterizable.getTriangles();
        mesh.RecalculateNormals();
        GameObject gameObject = new GameObject(parameterizable.getName(), typeof(MeshFilter), typeof(MeshRenderer), typeof(MeshEdit));

        gameObject.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
        gameObject.GetComponent <MeshFilter>().mesh       = mesh;
        gameObject.GetComponent <MeshRenderer>().material = DefaultMaterial;
        gameObject.GetComponent <MeshRenderer>().material.SetColor("Albedo", parameterizable.getAlbedo());
        gameObject.GetComponent <MeshRenderer>().material.SetFloat("Metallic", parameterizable.getMetallic());
        gameObject.GetComponent <MeshRenderer>().material.SetFloat("Smoothness", parameterizable.getSmoothness());
        gameObject.transform.localScale = parameterizable.getScale();
        gameObject.transform.position   = parameterizable.getPosition();
        gameObject.transform.rotation   = parameterizable.getRotation();
        gameObject.GetComponent <MeshEdit>().vertexHandler = VertexHandler;
        gameObject.transform.SetParent(OriginObject.transform, false);
        InstantiateImportedListElementIntoParent(gameObject, Parent);
    }