public void SaveFlowerPart(FlowerPart flowerPart)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        string          path      = Application.persistentDataPath + "/" + flowerPart.ml.name + ".flwpt";
        FileStream      stream    = new FileStream(path, FileMode.Create);

        FlowerPartData data = new FlowerPartData(flowerPart);

        formatter.Serialize(stream, data);
        stream.Close();

        Debug.Log("Saving Part " + flowerPart.partName);
    }
    public static GameObject LoadFlowerPart(string name, Material mat)
    {
        string path = Application.persistentDataPath + "/" + name + ".flwpt";

        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream      stream    = new FileStream(path, FileMode.Open);

            FlowerPartData data = (FlowerPartData)formatter.Deserialize(stream);
            stream.Close();
            FlowerPart part = data.getFlowerPart(mat);
            Debug.Log("Loading Part " + name);
            return(part.gameObject);
        }
        else
        {
            Debug.Log("save file " + path + " not found");
            return(null);
        }
    }