一、Unity3D優(yōu)化技巧
1、靜態(tài)資源優(yōu)化方案
2、多線程加載
3、資源動態(tài)更新
4、資源管理
5、場景加載
Unity3D優(yōu)化技巧
資源優(yōu)化主要是也是圍繞上面框架圖介紹,游戲中的場景會擺放很多靜態(tài)的物體,靜態(tài)的物體,我們可以通過編碼將其重新組裝成一個大的物體,在組裝成一個大物體之前,有個問題大家要思考一下,對于靜態(tài)物體的擺放有幾種情況,一是合并的物體可能有相同的,完全一樣;二是合并的物體有不同的,對于相同的物體可以共用一種材質(zhì)球,而不同的物體就按照不同的處理即可,核心代碼如下:
1. for (int s = 0; s < meshFilter.sharedMesh.subMeshCount; s++)
2. {
3. int materialArrayIndex = Contains(materials, meshRenderer.sharedMaterials[s].name);
4. if (materialArrayIndex == -1)
5. {
6. materials.Add(meshRenderer.sharedMaterials[s]);
7. materialArrayIndex = materials.Count - 1;
8. }
9. combineInstanceArrays.Add(new ArrayList());
10. CombineInstance combineInstance = new CombineInstance();
11. combineInstance.transform = meshRenderer.transform.localToWorldMatrix;
12. combineInstance.subMeshIndex = s;
13. combineInstance.mesh = meshFilter.sharedMesh;
14. (combineInstanceArrays[materialArrayIndex] as ArrayList).Add(combineInstance);
15. }
我們看到上面有個函數(shù)Contains它就是用于判斷是否有相同的材質(zhì),如果有就作為一張材質(zhì),Contains函數(shù)代碼如下所示:
1. private int Contains(ArrayList searchList, string searchName)
2. {
3. for (int i = 0; i < searchList.Count; i++)
4. {
5. if (((Material)searchList[i]).name == searchName)
6. {
7. return i;
8. }
9. }
10.
11. return -1;
12. }
這樣就可以將靜態(tài)物體組裝成一個大的Mesh,這個Mesh包含一個或多個材質(zhì)球。
教程名稱:Unity3D優(yōu)化技巧 | 語 言:中文 | 頁數(shù)/時長: 8頁 |
軟件版本: unity | 上傳時間:2018/03/06 | 價格:¥0 |
文件格式: docx | 文件大?。?31kb |
您還未登錄
全部評論: 0條