UISprite可以說是NGUI中被用到最多的組件之一了。畢竟一個UI界面都是由不同的精靈圖片也就是Sprite進行不同的組合搭配而成的。
在Unity中使用NGUI創(chuàng)建Sprite非常的簡單板驳,只需要在工具欄中找到NGUI->Create->Sprite并點擊即可。如果你是第一次創(chuàng)建,NGUI會自動給你創(chuàng)建一個根目錄也就是UIRoot,并附帶一個Camera磁奖。
UIRoot本身掛載了一個名為UIRoot的組件,這個組件是整個NGUI的根節(jié)點某筐。還掛載了一個UIPanel組件比搭,UIPanel是NGUI渲染的重要一環(huán),UIPanel可以直接將所掛在的UI及其下方的UI與其他UI做一個很好的分離南誊。這里所說的分離是指層級的分離身诺,依靠的就是UIPanel的depth屬性。當兩個panel的depth屬性不一樣時抄囚,其節(jié)點下方的所有UI都會以此panel的depth的基礎(chǔ)上進行計算霉赡。這樣,多個Panel之間的層級都不一樣幔托,做到了面板的分離穴亏。
回到UISprite,這個組件的Inspector面板是這樣子的重挑。
Atlas表示這個sprite所屬的圖集嗓化,點擊“前方”的Atlas就可以看到Unity中所有的Atlas。
右方的Edit按鈕可以點進入編輯模式,可以更改圖集的引用模式涛漂,是直接使用篇梭,還是引用其他的圖集氢橙。引用其他圖集的好處在于,你可以用多個UIAtlas引用同一個圖集很洋,這樣不需要將一個圖集拷貝成多份充蓝。這個功能的意義在于,你可以將圖集放editor目錄中喉磁,然后將引用方放在resource或者streamAsset目錄下,在打包的時候官脓,斷開引用协怒,這樣打包的時候不會打進包體中,包體會小很多卑笨。然后在手機上運行的時候孕暇,再重新關(guān)聯(lián)起來。這樣達到減小包體的作用,兩者之間的關(guān)聯(lián)只需要一張表就可以很好的綁定妖滔。
Sprite隧哮,就是這個圖集中的一個精靈元素,點擊Sprite可以打開選擇面板座舍,里面有這個圖集所有的Sprite圖片沮翔,找到我們需要的點擊就可以直接運用到我們當前Hierarchy面板中的UISprite上面。當然曲秉,這是再Editor模式下選擇采蚀。想要用腳本動態(tài)改變或者賦值的話,直接xx.spriteName = "name"即可承二。xx是腳本中對場景中的UISprite的引用榆鼠。spriteName是UISprite的一個屬性,直接賦值它會正確的找到我們需要的同名的圖片亥鸠,如果賦值的名字是錯誤或者不存在的話妆够,找不到雖然不會報錯,但是場景中原本應(yīng)該顯示Sprite的地方則是為空负蚊。
Type是這個Sprite的切割方式神妹,NGUI總共提供了五種切割方式。第一種為Simple簡單型盖桥,這種就是保持最原始的樣子灾螃。這個模式下,如果次Sprite只做等比縮放或者不在意形變揩徊,比如純色的之類的腰鬼,可以選擇這一種。但是如果你的Sprite要求能夠拉伸塑荒,比如你需要做搭建一個柱子熄赡,而美術(shù)只給了你底部的一小截(事實上,為了節(jié)約包體齿税,這是正常的做法)彼硫,如果選擇Simple模式進行拉伸,肯定會有變形凌箕,會變得非常難看拧篮,也不是我們想要的效果。這時候就可以選擇第二種牵舱,為Sliced 模式串绩。 選擇slice模式以后,需要點擊右方的editor按鈕芜壁,然后修改我們需要切割的部分礁凡。
Dimensions我們不需要動高氮,xy是這個sprite在圖集中的位置,Width顷牌、Height是這個Sprite的高寬剪芍。這些保持默認就好,不建議動窟蓝,因為很容易影響到其他的Sprite罪裹。要改大小的話,可以在外部改完以后重新打圖集疗锐。Border是這個Sprite的四個方向的內(nèi)邊框坊谁,當我們改四個方向(Left、Right滑臊、Bottom口芍、Top)為4的時候,下方的預(yù)覽可以看到多出了四根線雇卷,意思就是將內(nèi)邊框向內(nèi)部移動了4個像素鬓椭。可以看到四條虛線中間隔出來了一個矩形关划,當我們進行拉伸的時候小染,四條虛線外面的部分是不會被拉伸的,被拉伸的只有內(nèi)部的矩形部分贮折。這樣我們可以將這個圖片拉伸到任何我們想要的大小裤翩。需要注意的是,內(nèi)部矩形部分不能有顏色不一致或者圖像调榄,否則就會被拉伸踊赠,顯得很奇怪。
Padding是邊框的寬度每庆,也就是sprite的外邊框到內(nèi)邊框的寬度筐带。內(nèi)邊框就是我們剛剛切割的那條線,外邊框看不見缤灵,其實就是整個sprite最外邊的邊緣伦籍。如果我們修改這個值,則會出現(xiàn)向內(nèi)塌陷的情況腮出。
如圖帖鸦,如果我修改了padding的left,就會將內(nèi)邊框往圖片內(nèi)部擠壓胚嘲,不過這并不影響圖片本身的切割富蓄。超過的話,會正常的往右邊改變慢逾,也就是向右邊緣擠出去立倍,這沒什么意義,如果不是有特殊需求不建議這么干侣滩。
Tiled也就是平鋪口注。如果圖片的拉伸超出sprite本身的大小,那么就會再鏡像一個進行顯示君珠。就像貼同樣的瓷磚一樣寝志。如果我們需要一個同樣花紋的背景,就可以用這種方式策添。
Filled填充模式材部,這個是用sprite做一個填充,可以做倒計時效果唯竹。比如技能的倒計時乐导,
Advanced模式仪媒,這種模式下,可以手動調(diào)整sprite的四個方向的模式谢鹊,不過只支持sliced模式跟tiled模式算吩。
再下來就是Sprite的顏色設(shè)置,有兩個撇贺,一個是漸變色Gradient赌莺,一個是普通的顏色ColorTint。漸變色只支持上線漸變松嘶,不支持徑向漸變艘狭。顏色則點開可以直接選擇自己需要的。
Widget翠订,這是Sprite大小跟軸點控制參數(shù)的地方巢音。整張圖有九個點,分別是左上尽超、頂部官撼、右上、左中似谁、中點傲绣、右中掠哥、左下、底部秃诵、右下续搀。而privot就可以很好的設(shè)置這九個點。它有六個點分別為左中右上中下菠净,只能點擊兩個禁舷,由這選中的兩個對應(yīng)每一個位置。
Depth表示這種Sprite的深度毅往,用以跟其他Sprite進行層級的區(qū)分牵咙。Depth越大表示層級越高,也就顯示的越前面攀唯。Back表示depth減一洁桌,F(xiàn)orward表示depth加一
Size表示這種Sprite的大小。右邊的Snap表示直接重置到原始大小革答,需要注意的是Sliced模式下點擊Snap沒有作用战坤。Simple模式下只最有用的。Aspect表示 寬高比残拐,F(xiàn)ree的時候途茫,可以只有修改大小,改為Base On Width或者Base On Height的時候溪食,只能調(diào)整Width或者Height囊卜,另一個方向則會按照寬高比進行計算并改變。能有效節(jié)約圖片大小的時間错沃。
Anchors用來控制改Sprite的四個邊框跟其他組件的關(guān)聯(lián)關(guān)系
Sprite就是這樣窟却,用的多了就發(fā)現(xiàn)沒有什么神秘的!