unity中是自带合并网格功能的,并不用开发者遍历网格数据,然后再添加到一个列表中,所以,unity中自带的网格合并功能怎么使用呢?
using UnityEngine; using System.Collections; public class Combine : MonoBehaviour { void Start() { MeshRenderer[] meshRenderers = GetComponentsInChildren<MeshRenderer>(); Material[] mats = new Material[meshRenderers.Length]; for (int i = 0; i < meshRenderers.Length; i++) { mats[i] = meshRenderers[i].sharedMaterial; } MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>(); CombineInstance[] combine = new CombineInstance[meshFilters.Length]; for (int i = 0; i < meshFilters.Length; i++) { mats[i] = meshRenderers[i].sharedMaterial; combine[i].mesh = meshFilters[i].sharedMesh; combine[i].transform = meshFilters[i].transform.localToWorldMatrix; meshFilters[i].gameObject.SetActive(false); if (meshFilters[i].gameObject.name != gameObject.name) { Destroy(meshFilters[i].gameObject); } } transform.GetComponent<MeshFilter>().mesh = new Mesh(); transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine, false); transform.gameObject.SetActive(true); transform.GetComponent<MeshRenderer>().sharedMaterials = mats; } }
那么这里需要注意的是要获取sharedMaterial,sharedMesh
因为在程序运行时,直接调用Mesh是会报错的,所以要用sharedMesh
【51CTO.com原创稿件】随着移动互联网和大数据的蓬勃发展,数据即资产的理念深入...
Python与C语言的区别是什么?Python是由C语言实现,C语言是编译型语言,经过编译...
如今云计算是全球应对新冠疫情危机的核心技术。的确,几大领先的公有云提供商在2...
聪明的人类发现把简单的开关组合起来可以表达复杂的bool逻辑,在此基础之上构建...
每一个时代都有属于自己的英雄 而在云时代 开发者就是数字创新的践行者、是这个...
为什么要安装VMTools? VMTools是为 弹性云服务器 提供高性能磁盘和网卡的半虚拟...
操作场景 本节操作介绍当云耀云服务器的网卡需要变更所属安全组时的操作步骤。 ...
本文转载自微信公众号「接地气学堂」,作者接地气的陈老师。转载本文请联系接地...
本文转载自微信公众号「KK架构师」,作者wangkai。转载本文请联系KK架构师公众号...
本文转载自微信公众号「五分钟学大数据」,作者园陌。转载本文请联系五分钟学大...