開始
Uni2D增加了一些新的便利的特性給Unity,它們用于推動你2D工作流程和生產(chǎn)力。最有用的一個特性是sprite的創(chuàng)建:使用Uni2D,你能通過從項目窗口拖動texture來閃電創(chuàng)建sprite或者物理sprite。這個部分將向你展示怎樣設(shè)置Uni2D以及插件主要特性與原理。
什么是sprite?
一個sprite是一個帶有texture的plane mesh。一個sprite通常和camera是正交的。最簡單的sprite是一個由三角形合成的矩形,但它還能更復(fù)雜。在Unity中,sprite是一個沒有厚度的3D物體。
什么是物理Sprite?
一個物理sprite帶有物理碰撞器。它能和其它物理物體碰撞并做出正確的反應(yīng)。物理sprite的特性和渲染是分開的,所以它們的物理外形不必和sprite的圖形一樣。Uni2D能自動從sprite的texture中生成物理碰撞器。
什么是animation clip?
一個animation clip是一系列texture,稱為幀,它用于以一個固定的速率顯示sprite,來造成一種動畫的錯覺。沒什么好驚奇的,一個animation clip就是簡單的電影膠片。
什么是ATLAS?
一個texture atlas是一個大圖,它包含了一系列更小的子圖,它們是用于2D/3D物體某部分的texture。當有某些需要在屏幕渲染的時候,它背后帶來的是draw call。由于不同的原因(例如渲染狀態(tài)改變),一個draw call是一個很慢的操作,因此我們需要保持較低的draw call來保證較高的幀率。在移動設(shè)備上,接近30-40個draw call就開始變得危險了,具體取決于你的設(shè)備和渲染的場景。
幸運的是,在一些條件下,draw call是可以被批量處理的。unity會自動那么做,Atlas是幫助批處理draw call的一個方式:通過使用一個大texture(altas),不同的精靈能被批處理,只要它們共享同個texture。
什么是骨骼動畫(Skeletal Animation)?
骨骼動畫是讓2D/3D對象動起來的一種方式,這些對象構(gòu)成的骨骼由骨頭層級組成,幾乎就像人類的骨骼一樣。通過移動一個骨頭,mesh會因為受到骨頭的影響發(fā)生形變。這個技術(shù)是直觀的,它允許你讓一個對象做動作。
無縫更新
如果你某個texture改變了,而它是通過一個Uni2D asset來使用的,比如sprite或animation clip,這個asset將會被自動更新。這個特性為你提供了一個非常舒服的工作流程,你可以使用你喜歡的圖片編輯器編輯texture,而只要在Unity中幾秒后就能看到結(jié)果!還不滿意?撤銷改變,那么所有事物都會被還原。簡單!
理論看夠了!
好,讓我們開始吧!首先,到Unity的菜單欄點擊Uni2D > Sprite Editor
這將打開Sprite Editor。只要這個窗口打開了,將會開啟拖放特性,所以先不要那么快關(guān)閉它!
Sprite的拖放特性現(xiàn)在已經(jīng)開啟了。下面是Uni2D一些sprite創(chuàng)建的快捷方式。
操作 |
快捷方式 |
描述 |
拖放texture到場景 |
|
從texture創(chuàng)建sprite |
ALT+拖放texture到場景 |
|
從texture創(chuàng)建新的物理sprite |
SHIFT+拖放多個texture到場景 |
|
從多個texture中創(chuàng)建sprite動畫(按名字排序)。也創(chuàng)建Animation Clip。 |
ALT+SHIFT+拖放多個texture到場景 |
|
從多個texture中(通過名字排序)創(chuàng)建一個新的動畫sprite,并使用物理系統(tǒng)。物理是從第一幀動畫的texture開始計算的。同時也創(chuàng)建了animation clip。 |
當然還有更多的創(chuàng)建方式:正如你看到的,sprite editor窗口有3個按鈕,你可以選擇一個或多個texture,然后再點擊按鈕來創(chuàng)建。
按鈕 |
描述 |
Create sprite |
對每個選擇的texture創(chuàng)建一個sprite。和拖放texture到場景是一樣的。 |
Create physics sprite |
對每個選擇的texture創(chuàng)建一個物理sprite。和ALT+拖放texture到場景是一樣的。 |
Create animation clip |
從選擇的texture創(chuàng)建 animation clip asset。幀是根據(jù)texture名字排序的。參照上面快捷方式表格第三和第四種方式。 |
Sprite組件和屬性(Uni2D Sprite)
Uni2DSprite組件inspector顯示所有的設(shè)置,你能按你的愛好扭曲你sprite的形狀。inspector支持多選編輯,這樣可以節(jié)省你寶貴的時間。
Sprite Inspector 預(yù)覽
Sprite部分
設(shè)置 |
描述 |
Sprite Texture |
用于sprite的texture |
Use Atlas |
包含了texture的atlas。atlas已經(jīng)包含了下面列出的sprite texture,其它所有可用atlas在“all atlases”子菜單中列出。你也能創(chuàng)建一個新的atlas來立刻包含sprite texture,通過點擊"create a new atlas"即可。看Atlasing部分可以了解更多細節(jié)。 |
Shared Material |
默認的,如果沒有atlas,sprite有它唯一的material。如果你想要在多個sprite之間共享material(為了優(yōu)化)設(shè)置這個域為你指定的material。 |
Vertex Color |
給sprite的mesh染色。這個屬性也能在運行時通過腳本訪問(請看API部分獲取更多詳情) |
Collider Triangles |
生成的物理mesh 三角形的統(tǒng)計數(shù)目,用于信息顯示。當創(chuàng)建物理sprite的時候,盡量讓這個數(shù)目小一點。 |
Sprite Scale |
基礎(chǔ)scale用于生成sprite。Uni2D使用紋理的width和height做為基礎(chǔ)大小并應(yīng)用0.01因素給它們。默認scale1表示512*512的texture將在Unity中產(chǎn)生一個5.12*5.12的sprite,0.5將創(chuàng)建一個2.56*2.56等等。 |
Pivot部分
設(shè)置 |
描述 |
Position |
預(yù)定義中心點的位置。默認是Middle Center |
Custom |
使用這個把軸心放到你喜歡的位置。 |
Sprite Mesh部分
設(shè)置 |
描述 |
Mesh |
用于渲染Sprite的Mesh(表格下面有三個圖片來演示mesh不同設(shè)置)
- Quad:生成一個簡單的四方mesh
- Texture-To-Mesh:通過texture的外形生成mesh。對于節(jié)省填充率它是很有用的。
- Grid:生成格子mesh。也能節(jié)省填充率。
|
Alpha cut off(只有mesh屬性設(shè)置為Texture-To-Mesh或Grid才有) |
0意味著所有的像素都有用,而結(jié)果就是一個方形mesh。 |
Edge Simplicity |
使用這個設(shè)置去簡化生成mesh的拓撲。一個低的值意味著一個輪廓分明的mesh。一個高的值意味著一個簡單的圖形。用于減少三角形數(shù)目。 |
Use Physics |
勾選這個復(fù)選框,如果你想讓你的sprite 使用物理的mesh做為sprite mesh。(前提是這是一個物理sprite) |
Horizontal/Vertical Sub Divs |
水平和垂直創(chuàng)建網(wǎng)格的數(shù)量。增加這個值能在skinned sprite創(chuàng)建更美妙的變形。都為0則為一個方形mesh。 |
不同mesh設(shè)置的效果:
Physics 部分
設(shè)置 |
描述 |
Physics Mode |
應(yīng)用到sprite的模式有:
- No Physics:sprite沒有物理效果
- Static:一個mesh collider附加到sprite上
- Dynamic:一個mesh collider和一個rigidbody附加到sprite上
|
Collision Type |
生成的物理mesh的形狀。
- Convex:凸面形
- Concave:凹面形
- Compound:多個碰撞器組成,也允許以開銷較大的速度執(zhí)行凹面碰撞。
|
Is Kinematic(只有Dynamic物理模式有效) |
勾選這個復(fù)選框讓sprite不受unity的物理引擎驅(qū)動。 |
Alpha Cut Off |
和sprite的mesh是一樣的,不過這個用于生成物理mesh。 |
Edge simplicity |
和sprite的mesh是一樣的,不過這個用于生成物理mesh。 |
Extrusion depth |
所有生成的物理mesh有厚度,使用這個值可以調(diào)整它。 |
Polygonize Holes(只有Concave和Compound的collision type有效) |
打開它可以在生成物理mesh的時候顧及到小孔。
|
Skeletal平滑綁定部分
設(shè)置 |
描述 |
Skin quality |
骨頭的數(shù)目影響到對每個頂點的考慮。越大的值提供越好的效果,但也帶來計算量的增加。“auto”值使用Unity當前平臺的默認質(zhì)量,即你項目build setting中設(shè)置的。 |
Bone Influence Falloff |
改變這個值去設(shè)置你骨頭的影響區(qū)域。Bone Influence會在兩個骨頭的頂點方法中計算。低的值意味著更少的衰減,所以大的影響區(qū)域,更高的值意味著更大的衰減,即影響區(qū)域更小。 |
Open Skeletal Animation Editor |
點擊這個按鈕打開骨骼動畫編輯器。更多詳情在專門的部分會講到。 |
Animation 部分
屬性 |
描述 |
Play Automatically |
勾選這個復(fù)選框會使得在sprite初始化的時候就開始播放默認clip |
Start clip index |
第一個播放動畫的下標 |
Animation Clips |
當前sprite上面的animation clips。更多詳情看Animation Clip部分 |
Add animation clip |
點擊這個按鈕來附加一個animation clip到這個sprite上。你也能通過點擊菜單欄“Uni2D > Create > Animation Clip”來創(chuàng)建一個新的animation clip并把它附加到sprite上。 |