Unity3D對(duì)于靜態(tài)對(duì)象優(yōu)化,一種方式是使用Unity自帶的功能比如可以選擇Static,這樣Unity引擎內(nèi)部會(huì)對(duì)其進(jìn)行優(yōu)化批處理,無需使用者關(guān)心,比較簡單,但是還是不夠理想。另一種方式是我們用腳本進(jìn)行控制,用腳本對(duì)其進(jìn)行優(yōu)化,相對(duì)前者效率方面比如在DrawCall上可以減少。接下來我們逐步解析,優(yōu)化直至達(dá)到我們的要求為止,本次作為一個(gè)系列來講解,為了讓大家更能透徹的理解。
我們先看一下,沒選擇Static和選擇Static的比較結(jié)果,我們是以三個(gè)Cube為例采用同樣的材質(zhì),如圖所示:
基本上沒啥影響,這說明Unity會(huì)自動(dòng)為我們處理的,但是這不是我們需要的結(jié)果,接下來我們?nèi)?yōu)化它,優(yōu)化的思路就是將這三個(gè)對(duì)象根據(jù)其MeshFilter將其組合成一個(gè)大的Mesh,這個(gè)Mesh是我們自己生成的,最后將材質(zhì)賦值給它。接下來我們書寫代碼:
using UnityEngine; using System.Collections; public class Combine : MonoBehaviour { void Start() { MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>(); CombineInstance[] combine = new CombineInstance[meshFilters.Length]; for (int i = 0; i < meshFilters.Length; i++) { combine[i].mesh = meshFilters[i].sharedMesh; combine[i].transform = meshFilters[i].transform.localToWorldMatrix; meshFilters[i].gameObject.active = false; } transform.GetComponent<MeshFilter>().mesh = new Mesh(); transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine); transform.gameObject.active = true; } }以上是代碼實(shí)現(xiàn),那我們?nèi)绾稳ソ壎ǖ綄?duì)象上,首先我們需要給對(duì)象加一個(gè)MeshFilter組件,為了操作方便直接將一個(gè)對(duì)象拿過來使用.如圖所示:
圖中畫圓圈的地方,接下來我們將我們的腳本掛接到上面去。實(shí)現(xiàn)效果如下圖:
相比于我們上圖通過Unity自身優(yōu)化,Draw Call明顯減少了,達(dá)到了我們的目的,但是還有一個(gè)問題,就是用這種方式,優(yōu)化后,模型位置發(fā)生了偏移。這個(gè)不是我們想要的。還有以上是相同材質(zhì),如果我們換成不同的材質(zhì),不加腳本如下圖所示:
那如果我們加上優(yōu)化腳本,情況如下:
紅色的箱子不見了,所以這么做是不允許的,注意在使用該優(yōu)化腳本的時(shí)候,我們不要選擇Static,接下來我們會(huì)在系列二中繼續(xù)解決這個(gè)問題。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱:Unity3D靜態(tài)對(duì)象優(yōu)化系列一-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://www.rwnh.cn/article48/doseep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站改版、軟件開發(fā)、網(wǎng)站建設(shè)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容