注意:看到還有好多人在關注本帖,本着對大家負責的態度,我建議大家不需要再用此分辨率適應方案了,我也有將近1年多沒更新了。此分辨率適應是在NGUI還沒有好的分辨率適應方案、還不存在UGUI的情況下寫出來的分辨率適應方案。現在NGUI、UGUI的分辨率適應方案跟此方案差不多,並且功能做的更好。所以大家可以用UGUI或者NGUI的分辨率適應方案。謝謝大家的關注。(2016-1-26更新)
---------------------------------------------------------------------------------------------------------------
你還在用NGUI的分辨率適應方式嗎?你還在用2DTooKit分辨率適應方式嗎?如果你還用那么說明你已經OUT啦!
下面我來講講這幾天編寫的一套分辨率適應方式,適用於任何分辨率,並且簡單易上手,還支持橫屏和豎屏,只需要你填寫最合適你UI的分辨率,當你切換到其他分辨率的時候UI自動適應(包括位置和大小),而且不會有任何UI拉伸現象。
第一步:首先你要把MyAnchorCamera這個腳本拖到你攝像機上,然后你會看到你的攝像機上附加了這個腳本,並且這個腳本下面有一些參數
下面我來教大家怎么設置這些參數:
Mode:最開始你要選擇你要適應的是橫屏還是豎屏(這個很重要),不同模式他的適應方式不一樣,默認的是豎屏模式(Tall)。
Scale:這個參數不需要你設置,這個參數會根據你當前的分辨率設置好的。
suirableUI_width:這個參數很重要,你需要自己填寫最適合你UI大小、位置的分辨率的寬,也就是你在哪個分辨率下編輯游戲的UI的大小位置最合適就填寫哪一個分辨率。默認參數是0,當然你不填的話,你切換分辨率的時候你的UI大小不會改變的哈。
suirableUI_height:同上
所以你最開始要做的事情就是要把Mode和suirableUI_width、suirableUI_height三個參數填好(記得一定要先填哈)!
現在開始實戰演練,我是在854 * 480分辨率橫屏模式下進行編輯的(大家請注意分辨率和UI位置哈):
第二步:點擊剛才附加到攝像機上那個腳本中的Create Anchor按鈕
然后你會發現在攝像機下面會創建一個空對象Anchor,在這個對象上面會有一個腳本,這個腳本的作用其實就是對UI進行固定,也就是相當於對UI進行描點。
現在來說說這個空對象上面的MyUIAnchor這個腳本中的參數:
Anchor:這個參數是可選參數,里面有13中方法,分別多頂端的左、中、右,對中間的左、中、右,對底端的左、中、右,對四個角進行描點(也就是固定UI的位置)
offset:是UI的偏移變量,對UI位置進行微調參數
第三步:我們對UI進行描點(位置固定),我們創建5個Anchor空對象
然后改變每一個Anchor的模式,然后改一個我們能辨認的名字(記得一定要先選擇模式哦,不然UI位置不好控制哈)
這些完成以后就把你要固定的UI拖到上面選好模式的空對象下面
下面我們來看看分辨率適應的效果如何(注意UI的位置和大小哦,我是在854 * 480分辨率下進行適應的哦):
480 * 320:
800 * 480:
1024 * 600:
960 * 680:
1280 * 800:
1024 * 768:
最后來一個不規則的分辨率910 * 613:
木有了,完成了,有木有很簡單,有木有!
當然作為福利,附件里面還有一個背景填充腳本!把BKAnchor這個腳本放到你要填充整個攝像機的背景圖片上它會自動的幫你把攝像機填充滿,注意背景會有一定程度的拉伸變形哈!
(先前那個附件BKAnchor腳本整掉了一行代碼,現在補上,大家看看還有沒有錯,這個腳本要在有MyAnchorCamera這個腳本的前提下才能生效哈)
有問題或者改進建議、經驗交流請加unity3D技術交流群:3112035
———— 大紅花
版本1.0.0MyCameraAnchor.zip
版本1.0.1MyCameraAnchor1.0.1.unitypackage(1.增加了一個自動適應模式,能夠按照變化最大的分辨率進行適應;2.去除了幾個重復的描邊方法;3.增加場景中若有多個Camera情況下可以分別適應不同Camera的功能 4.增加了顯示當前分辨的開關,便於調試 5.修改了若干bug)
版本2.0MyCameraAnchor2.0.unitypackage(增加NGUI的層級分辨率適應:如果用的是NGUI的層級關系,那么只需要啟用isNGUIHierarchy變量即可,其他的適應請看上面的教程)
版本2.1.0MyCameraAnchor2.1.0.unitypackage(1、修復了攝像機剪裁不准確的bug 2、完善了適應不同攝像機的機制 3、去除了舊的背景適應機制,增加了新的背景適應機制,背景適應更加准確,只需要把“MyBKAnchor”腳本拖到背景圖片的對象上然后選擇適應的類型即可)