当场景中有很多不同的模型和贴图时,会导致Batch 会很高,所以我们可以去合并这些小物件模型和贴图,已达到省资源的目的。
首先在记录每一个需要被动态合并的物的material,mesh, texture,uv 等信息
public void CollectSmallObject(SmallObject mSmallobject)
{
ObjectData data = default(ObjectData);
data.objId = mSmallobject.objId;
render = mSmallobject.GetComponentsInChildren<MeshRenderer>();
mesh = mSmallobject.GetComponentsInChildren<MeshFilter>();
data.MaterialData = new MaterialData[mesh.Length];
MaterialData materialData = default(RoomMaterialData);
for (int i = 0; i < mesh.Length && i < render.Length; i++)
{
materialData.mainTexture = render[i].sharedMaterial.mainTexture;
materialData.uv = mesh[i].mesh.uv;
materialData.render = render[i];
materialData.mesh = mesh[i];
data.MaterialData[i] = materialData;
}
//深沉次遍历
CollectSmallObject(roomType, ref data);
}

本文介绍了一种在Unity中优化资源使用的方法,通过动态合并场景中的小物件模型和贴图来降低Batch数量,从而节省资源。文章详细讲解了如何收集并合并模型的材质、网格和纹理信息,以及如何在需要时还原合并前的状态。
最低0.47元/天 解锁文章
1536

被折叠的 条评论
为什么被折叠?



