在游戲開發(fā)中有很多的功能都是用unity來(lái)實(shí)現(xiàn)的,那么對(duì)于unity開發(fā)人員來(lái)說(shuō)在開發(fā)中要怎么實(shí)現(xiàn)多分辨適配也是一個(gè)比較難的問(wèn)題,因?yàn)樵陂_發(fā)游戲的過(guò)程中重要的就是場(chǎng)景中的美和平衡的問(wèn)題了。下面達(dá)內(nèi)科技的unity講師就來(lái)和大家講解下unity中的多分辨適配是怎么實(shí)現(xiàn)的。
錨點(diǎn)定位
目前主流的還是以錨點(diǎn)定位為主。錨點(diǎn)定位的方式對(duì)于開發(fā)來(lái)講比較方便,設(shè)計(jì)人員定好每個(gè)UI要掛在哪個(gè)錨點(diǎn)上,就不會(huì)去管不同分辨率的顯示問(wèn)題了。每個(gè)不同的分辨率都會(huì)根據(jù)獲取的錨點(diǎn)進(jìn)行UI的顯示。不過(guò)錨點(diǎn)是有局限性的,設(shè)計(jì)上需要針對(duì)每種分辨率進(jìn)行顯示避規(guī),需要不斷的調(diào)整錨點(diǎn)的位置,達(dá)到不同分辨率都能顯示正常,如果沒(méi)有調(diào)整好錨點(diǎn),那么在不同的分辨率屏幕上就會(huì)出現(xiàn)UI異常的情況。錨點(diǎn)定位基本不能做占滿橫條或豎條的設(shè)計(jì),橫條和豎條使用錨點(diǎn)就會(huì)出現(xiàn)圖片顯示不全或者屏幕沒(méi)占滿的情況。
UI配置文件
做UI配置文件適配就是針對(duì)每個(gè)比例的分辨率記錄每個(gè)UI的大小和位置,然后在游戲運(yùn)行時(shí)讀取相應(yīng)分辨率的UI配置文件來(lái)還原適配好的UI。這個(gè)做法就不需要像錨點(diǎn)定位那樣去規(guī)避不同分辨率的設(shè)計(jì),但是這個(gè)方案修改操作比較麻煩,每次調(diào)整都需要對(duì)每個(gè)分辨率的配置進(jìn)行調(diào)整,人工操作的成本比較高。
以上兩種都是比例適配較多,高清(例如NEW
IPAD)適配可能就比較麻煩了。如果確實(shí)有這樣不能拉伸的需求(需要UI非常精致那種),只能做多套UI了,然后用NGUI的retina適配插件做相應(yīng)適配。不過(guò)一般游戲都不需要做到那么精致,直接用960或1024的UI拉伸到2048的程度,雖然有一些毛邊,但是還是能夠接受的,市面上的NEW
IPAD大部分UI都是這樣做的。
修改顯示分辨率
需要注意的是,如果你不希望UI被拉伸,又不想在高清分辨率手機(jī)上顯示圖標(biāo)過(guò)小,可以考慮下修改手機(jī)的顯示分辨率。在U3D的Screen類下,有個(gè)Screen.SetResolution()函數(shù),可以設(shè)置相應(yīng)的渲染分辨率。IOS導(dǎo)出XCODE之前的build
setting的other settings下的target device設(shè)置也可以修改IOS相應(yīng)的分辨率。
修改顯示分辨率可以達(dá)到你的UI適配效果,假設(shè)你覺得這個(gè)游戲在高清分辨率的手機(jī)跑起來(lái)慢的話,修改顯示分辨率后,相應(yīng)的像素渲染便少了很多。從而大大提高游戲的運(yùn)行幀率。但事實(shí)上它還是拉伸了UI,因?yàn)榉直媛实土耍@示屏?xí)霈F(xiàn)精度的視網(wǎng)格,所以場(chǎng)景中的3D模型邊緣顯示鋸齒很明顯。可以通過(guò)在quality
setting下的效果開抗鋸齒選項(xiàng)來(lái)解決問(wèn)題,但開抗鋸齒是挺耗性能的。
如果說(shuō)你想要學(xué)習(xí)unity知識(shí)的話,那么達(dá)內(nèi)科技?xì)g迎大家來(lái)我們公司的unity培訓(xùn)班進(jìn)行實(shí)地考察,也可以點(diǎn)擊我們文章下面的獲取試聽資格按鈕來(lái)獲取我們的unity課程免費(fèi)試聽資格,在試聽中可以更加深入的了解我們達(dá)內(nèi)科技。