一、Unity3D優(yōu)化技巧
1、靜態(tài)資源優(yōu)化方案
2、多線程加載
3、資源動(dòng)態(tài)更新
4、資源管理
5、場(chǎng)景加載
Unity3D優(yōu)化技巧
資源優(yōu)化主要是也是圍繞上面框架圖介紹,游戲中的場(chǎng)景會(huì)擺放很多靜態(tài)的物體,靜態(tài)的物體,我們可以通過(guò)編碼將其重新組裝成一個(gè)大的物體,在組裝成一個(gè)大物體之前,有個(gè)問(wèn)題大家要思考一下,對(duì)于靜態(tài)物體的擺放有幾種情況,一是合并的物體可能有相同的,完全一樣;二是合并的物體有不同的,對(duì)于相同的物體可以共用一種材質(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. }
我們看到上面有個(gè)函數(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)物體組裝成一個(gè)大的Mesh,這個(gè)Mesh包含一個(gè)或多個(gè)材質(zhì)球。
教程名稱:Unity3D優(yōu)化技巧 | 語(yǔ) 言:中文 | 頁(yè)數(shù)/時(shí)長(zhǎng): 8頁(yè) |
軟件版本: unity | 上傳時(shí)間:2018/03/06 | 價(jià)格:¥0 |
文件格式: docx | 文件大小:131kb |
使用說(shuō)明:
1. 本站所有資源(包括3D模型、CG教程、插件軟件、材質(zhì)貼圖、工程文件等)由設(shè)計(jì)師上傳,僅供學(xué)習(xí)、參考,請(qǐng)勿用于非法用途。
2. 本站付費(fèi)類資源第一次需有償下載,重復(fù)下載不再收費(fèi)。
3. 若出現(xiàn)3d模型類資源打不開(kāi),請(qǐng)確認(rèn)您的軟件版本是否過(guò)低。
4. 本站歡迎設(shè)計(jì)師注冊(cè)開(kāi)店,上傳作品進(jìn)行交流、交易。
5. 如在使用過(guò)程中,遇到任何問(wèn)題,請(qǐng)下拉頁(yè)面至評(píng)論區(qū)留言,或咨詢QQ:2353487910。
您還未登錄
全部評(píng)論: 0條