转载的处理unity导入的mesh会有很多个多余无用通道问题解决方法

                                                       
                                           

最近在做项目优化的时候发现,游戏中的模型占用了很高的内存,然后就怀疑是美术在做模型的时候没有把uv2,uv3,color等无用的通道去掉,然后就去问了美术,美术说她并没有开启这些通道,我也去max中检查了一下也没发现什么异常的情况,在max中看确实只有一层uv但是在unity里面就可以看见模型上面有很多层uv了,带着这个问题去查了下资料,摸索着使用了下max,找到了如下的两种解决方法。

方法一:

在max中进行设置把没有必要的通道全部clear掉,具体的操作请看下面的截图:

在这个界面中美术可以把相应的不需要的通道关掉,这样在导出的时候就不会附带这些通道了,如果想去掉color通道的话直接去掉alpha通道就行。

方法二:

程序这边进行处理,做一个工具,对每个导入到unity中的模型代码中清除相应的通道,具体的代码如下


   
   
  1. public class ClearModelUV:AssetPostprocessor  {
  2.     //AssetPostprocessor这个类是unity自带的,会在导入资源的时候自动调用,
  3.     //可以在这个类中实现对资源的处理。
  4.     //OnPostprocessModel这个函数在资源导入到unity被存成prefabs最后阶段被调用
  5.     //传入的gameobject就是被导入的资源的Gameobject
  6.     //这个类还有一个OnPreprocessModel的方法会比这个方法提前点调用。具体用法
  7.     //和前者差不多
  8.     void OnPostprocessModel(GameObject rImaportModel)
  9.     {
  10.         this.ClearMeshUVAndColorChannel(rImaportModel);
  11.     }
  12.     private void ClearMeshUVAndColorChannel(GameObject rImportModel)
  13.     {
  14.         List <Vector2> rNewUV = null;
  15.         List <Color32> rNewColor = null;
  16.         var rFilters= rImportModel.GetComponentsInChildren <MeshFilter>();
  17.         for (int filter_index = 0; filter_index < rFilters.Length; filter_index++)
  18.         {
  19.             rFilters[filter_index].sharedMesh.SetColors(rNewColor);
  20.             rFilters[filter_index].sharedMesh.SetUVs(1, rNewUV);
  21.             rFilters[filter_index].sharedMesh.SetUVs(2, rNewUV);
  22.             rFilters[filter_index].sharedMesh.SetUVs(3, rNewUV);
  23.          }
  24.     }
  25. }
以上就是解决导入的模型存在多层UV的解决方法。

Tip:由于unity的光照贴图会自动占用uv2通道,而且你的项目中又使用的是动态加载光照贴图的方式的话,最好不要在导入模型的时候把UV2设置为null,如果你这样做了有可能会导致光照贴图显示不出来的问题。具体请看http://m.blog.csdn.net/article/details?id=46330119我也是搜索解决方案的时候无意中看到的,所以作为Tips提醒下


                                   
                                   
                                   
                               
                                       
抗痘洁面泥                                                                                                                    
                   
原创文章 18 获赞 9 访问量 3万+
               
                               
                                            关注                                                                 私信                                                            
                           
                               
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值