将Unity模型导出成.obj文件

前言

之间做项目用到的,好像没啥大用,记录一下,废话不多说,直接上代码

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值