从优化角度,Mesh需要合并。

从换装的角度(这里指的是换形状、换组成部件的换装,而不是挂点型的换装),都需要网格合并、材质合并。如果是人物的换装,那么需要合并SkinnedMeshRenderer,并重刷对应的骨骼列表。网格合并后对模型的渲染可以降低GPU的负担,但是经过测试发现,虽然网格合并了但是由于子物体网格的材质是不同的并没有降低DrawCall,如果把材质改成相同的,Unity自身会进行批处理合并,所以DrawCall就会减少!在MMO的游戏中,网格动态合并还是非常有必要的!

代码:

using UnityEngine;
using System.Collections;/// <summary>
/// 网格合并
/// </summary>
public class Combine_Test : MonoBehaviour
{void Start(){//---------------- 先获取材质 -------------------------//获取自身和所有子物体中所有MeshRenderer组件MeshRenderer[] meshRenderers = GetComponentsInChildren<MeshRenderer>();//新建材质球数组Material[] mats = new Material[meshRenderers.Length];for (int i = 0; i < meshRenderers.Length; i++){//生成材质球数组 mats[i] = meshRenderers[i].sharedMaterial;}//---------------- 合并 Mesh -------------------------//获取自身和所有子物体中所有MeshFilter组件MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();//新建一个合并组,长度与meshfilter长度相同CombineInstance[] combine = new CombineInstance[meshFilters.Length];for (int i = 0; i < meshFilters.Length; i++){//获取共享材质mats[i] = meshRenderers[i].sharedMaterial;//获取共享meshcombine[i].mesh = meshFilters[i].sharedMesh;//矩阵(Matrix)自身空间坐标的点转换成世界空间坐标的点 combine[i].transform = meshFilters[i].transform.localToWorldMatrix;meshFilters[i].gameObject.SetActive(false);//除了根物体,其他物体统统销毁if (meshFilters[i].gameObject.name != gameObject.name){Destroy(meshFilters[i].gameObject);}}//为新的整体新建一个meshtransform.GetComponent<MeshFilter>().mesh = new Mesh();//合并Mesh. 第二个false参数, 表示并不合并为一个网格, 而是一个子网格列表transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine, false);transform.gameObject.SetActive(true);//为合并后的新Mesh指定材质 ------------------------------transform.GetComponent<MeshRenderer>().sharedMaterials = mats;}
}

注:同材质合并使用统一Material可以节省性能,使用materials并不能节省性能。

transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine);
gameObject.AddComponent<MeshRenderer>().material = mats[0];

运行前效果图:

运行后效果图:

Unity中网格合并相关推荐

  1. Unity Mesh网格合并

    Mesh网格合并通常是优化中常用的小手段,目的是为了减少drawcall,大量的drawcall会造成CPU的性能瓶颈.例如下图中船只里的钢材货物,由诸多钢材模型堆砌而成. 我们将其放在一个空场景里查 ...

  2. Unity网格合并_材质合并

    2019独角兽企业重金招聘Python工程师标准>>> 写在前面: 从优化角度,Mesh需要合并. 从换装的角度(这里指的是换形状.换组成部件的换装,而不是挂点型的换装),都需要网格 ...

  3. Unity Edior下合并场景 合并网格 合并贴图

    声明:这篇绝不是网上那些转来转去千篇一律的 合并方法 搜老半天看的都是同一篇博客 一点帮助都没有 还是自己写个吧 1.工程里面 合并场景主要是为了降低draw call 2.不同shader的尽量不要 ...

  4. 蒙皮骨骼动画 unity_在Unity中沿航路点设置蒙皮网格动画

    蒙皮骨骼动画 unity This post is a guide to importing a skinned mesh with a looping animation and then anim ...

  5. 关于Unity中的UGUI优化,你可能遇到这些问题

    一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准和特别要求呢? 据我们所知,alpha split 的功能最初只对 ...

  6. echart 实例显示位置_技术分享:如何在Unity中使用实例化渲染?

    编者按 在日常开发中,通常说到优化.提高帧率时,总是会提到批量渲染.之前简单总结了静态合批(点此查看全文)以及动态合批(点此查看全文),这次作者将和大家聊聊实例化渲染. 作者:枸杞忧天 (本文内容由公 ...

  7. ugui unity 取消选择_关于Unity中的UGUI优化,你可能遇到这些问题

    ​关键字 界面制作 ​网格重建 ​界面切换 ​加载相关 ​字体 ​ 一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准 ...

  8. Unity中Light Probe详解

    本文节选自洪流学堂公众号专栏<郑洪智的Unity2018课>,未经允许不可转载. 洪流学堂公众号回复光照探头,获取本文对应的视频实战教程. 洪流学堂,让你快人几步.你好,我是郑洪智. Un ...

  9. Unity教程之再谈Unity中的优化技术

    这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体 这一步主要是为了针对性能瓶颈中的" ...

最新文章

  1. 浅析SEO优化怎样打好企业新站优化基础稳步提升排名
  2. 【EntityFramework Core】实体实例化注入
  3. idea 两次运行同一main方法 开启两个进程
  4. 【Linux】一步一步学Linux——pmap命令(145)
  5. 任务调度框架Quartz基本介绍
  6. MySQL调优(六):分区设计,分区优化案例
  7. matlab函数包_Matlab论文插图绘制的270种补充颜色
  8. 程序员爬虫竟构成犯罪?
  9. 【Python实例第5讲】Pipeline与GridSearchCV降维法
  10. cvAddWeighted 进行图片融合
  11. 什么软件可以测试网络的稳定性,手机怎么测试网络稳定性
  12. 优秀的java程序员怎么写注释的
  13. Bluemix开发作品——魔芋相机、小沃、Etrans-Bluemix-专题视频课程
  14. Android实现涂鸦功能
  15. iOS-马甲包审核以及常见审核问题
  16. 客户端表单验证_客户端的表单验证
  17. ActionScript 3.0 学习(十七) away3D学习2 away3d的贴图原理
  18. Shell脚本文件头介绍
  19. oracle 跨平台adg,oracle ADG 跨版本跨平台搭建实测
  20. 积分制管理系统:其它可增加积分的功能

热门文章

  1. 手把手教python project_《手把手教你》系列练习篇之9-python+ selenium自动化测试 -番外篇 - 最后一波啊!!!(详细教程)...
  2. piwik 访客跟踪(一)
  3. 字节跳动青训营--前端day5
  4. MBR每个分区不超过2T
  5. 想在Python中将Excel文件转换为PDF?来看看这份Aspose.Cells指南
  6. 水库雨水情自动测报系统-设备介绍
  7. 如何在win7建网站服务器,win7系统下利用iis如何进行web服务器搭建
  8. Sql Server数据库由于未知原因丢失的恢复方法
  9. 14.1智能体的概念和结构: 反应式体系结构, 慎思式体系结构, 复合式体系结构
  10. Android Q自动背光曲线调节