合併網格之後發現用來合併的網格在場景中也占用乙份記憶體,也就是說一共占用了兩份記憶體。
**如下
private void combinemesh(listmeshfilters)
m_terrainmeshcombine = new gameobject("terrainmeshcombine");
m_combinemesh = new mesh();
m_terrainmeshcombine.transform.setparent(transform);
m_terrainmeshcombine.addcomponent().sharedmaterial = terrainmeshmat;
m_terrainmeshcombine.addcomponent().sharedmesh = m_combinemesh;
m_terrainmeshcombine.getcomponent().sharedmesh.combinemeshes(combine);
m_terrainmeshcombine.getcomponent().sharedmesh.recalculatebounds();
m_terrainmeshcombine.getcomponent().sharedmesh.recalculatetangents();
m_terrainmeshcombine.getcomponent().sharedmesh.recalculatenormals(60);//過載的乙個方法
m_terrainmeshcombine.getcomponent().sharedmesh.markdynamic();
m_terrainmeshcombine.getcomponent().sharedmesh.uploadmeshdata(false);
}
記憶體使用情況如下
從profiler中看到合併的網格和未合併的小網格各占用乙份記憶體,如果使用合併後的網格那麼小網格其實是可以刪掉的。
修改後如下
private void combinemesh(listmeshfilters)
m_terrainmeshcombine = new gameobject("terrainmeshcombine");
m_combinemesh = new mesh();
m_terrainmeshcombine.transform.setparent(transform);
m_terrainmeshcombine.addcomponent().sharedmaterial = terrainmeshmat;
m_terrainmeshcombine.addcomponent().sharedmesh = m_combinemesh;
m_terrainmeshcombine.getcomponent().sharedmesh.combinemeshes(combine);
m_terrainmeshcombine.getcomponent().sharedmesh.recalculatebounds();
m_terrainmeshcombine.getcomponent().sharedmesh.recalculatetangents();
m_terrainmeshcombine.getcomponent().sharedmesh.recalculatenormals(60);
m_terrainmeshcombine.getcomponent().sharedmesh.markdynamic();
m_terrainmeshcombine.getcomponent().sharedmesh.uploadmeshdata(false);
for (int i = 0; i < meshfilters.count; i++)
combine = null;
}
記憶體使用情況如下
從記憶體使用情況來看也減少了記憶體開銷。
合併Mesh網格
1 對於具有相同材質的物件,可以通過把他們的mesh網格 mesh filter 合併在一起,然後禁用被合併的物件,來達到減少drawcall的效果 void start transform.getcomponent mesh new mesh transform.getcomponent mesh...
Unity換裝之合併網格
為了提高遊戲效能,需要對人物進行換裝後,講人物各個部分再進行組合,形成乙個整體的網格,所以需要合併網格,骨骼,材質等。下面是從resources中載入人物各個部分,然後再組裝。首先載入的骨骼,再載入其他部分。void loadresource void addpart string partname...
UI優化策略 網格重建
原文 基於以上ugui的網格更新原理,我們可以做以下優化 1 使用盡可能少的ui元素 在製作ui時,一定要仔細查檢ui層級,刪除不必要的ui元素,這樣可以減少深度排序的時間以及rebuild的時間。2 減少rebuild的頻率 將動態ui元素 頻繁改變例如頂點 alpha 座標和大小等的元素 與靜態...