Beispiel #1
0
        static string processTransform(Transform t, bool makeSubmeshes)
        {
            StringBuilder meshString = new StringBuilder();

            meshString.Append("#" + t.name
                              + "\n#-------"
                              + "\n");

            if (makeSubmeshes)
            {
                meshString.Append("g ").Append(t.name).Append("\n");
            }

            MeshFilter mf = t.GetComponent <MeshFilter>();

            if (mf)
            {
                meshString.Append(ModelExporterOutput.MeshToString(mf, t));
            }

            for (int i = 0; i < t.childCount; i++)
            {
                meshString.Append(processTransform(t.GetChild(i), makeSubmeshes));
            }

            return(meshString.ToString());
        }
Beispiel #2
0
        public static void DoExport(GameObject Selection, bool makeSubmeshes, string fileName)
        {
            string meshName = Selection.name;

            ModelExporterOutput.Start();
            {
                StringBuilder meshString = new StringBuilder();
                meshString.Append("#" + meshName + ".obj"
                                  + "\n#" + System.DateTime.Now.ToLongDateString()
                                  + "\n#" + System.DateTime.Now.ToLongTimeString()
                                  + "\n#-------"
                                  + "\n\n");

                Transform t = Selection.transform;
                Vector3   originalPosition = t.position;
                t.position = Vector3.zero;

                if (!makeSubmeshes)
                {
                    meshString.Append("g ").Append(t.name).Append("\n");
                }
                meshString.Append(processTransform(t, makeSubmeshes));

                WriteToFile(meshString.ToString(), fileName);

                t.position = originalPosition;
            }
            ModelExporterOutput.End();

            Debug.Log("Exported Mesh: " + fileName);
        }