前言
之间做项目用到的,好像没啥大用,记录一下,废话不多说,直接上代码
public void ExportObj(string path, params Transform[] objectParent)
{
if (string.IsNullOrEmpty(path))
{
return;
}
//mtl文件的名称
mtlPath = "multiGameObject.mtl";
//obj路径
writePath = path + "demo.obj";
//mtl路径
MtlPath = path + mtlPath;
Mesh mesh;
Texture tex;
//材质球名字
string Matname = "";
int verCount = 0;
int uvCount = 0;
int norCount = 0;
StringBuilder sb = new StringBuilder();
StringBuilder sb1 = new StringBuilder();
//处理obj文件表头的位置----------------------------------
//obj文件是由一行行文本组成 D十进制数
sb.Append("# Created By Unity_2018.4.21f1,Script:" + GetType() + "\n");
sb.Append(string.Format("# File Created:{0:d2}:{1:d2}:{2:D2} " + "{3:d4}/{4:d2}/{5:d2}\n",
DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day));
sb.Append("# 关键字注意区分大小写\n");
//OBJ文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是".mtl"的独立文件中,里面存储了材质信息
//引用材质库 mtl文件的名字
sb.Append("mtllib " + mtlPath + "\n\n");
//处理mtl文件表头的位置
sb.Append("# Created By Unity_2018.4.21f1,Script:" + GetType() + "\n");
sb.Append(string.Format("# File Created:{0:d2}:{1:d2}:{2:D2} " + "{3:d4}/{4:d2}/{5:d2}\n\n",
DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTime.Now.Year, DateTime.Now.Month, Da