制作复选框(Toggle)
怎樣判斷是否應(yīng)當(dāng)使用復(fù)選框
復(fù)選框,就是對(duì)一個(gè)選項(xiàng)做上一個(gè)標(biāo)記,表示這個(gè)選項(xiàng)已經(jīng)被選中了。在游戲中,復(fù)選框一般用來(lái)做一些選項(xiàng)的控制,這種選項(xiàng)一般都只有兩種答案:是和否。例如,單擊一下開(kāi)啟音樂(lè)的復(fù)選框,這個(gè)復(fù)選框上就打了一個(gè)勾,然后音樂(lè)在游戲中就會(huì)開(kāi)發(fā);如果再單擊一下,則這個(gè)勾會(huì)取消掉,然后音樂(lè)相會(huì)在游戲中關(guān)閉。這就是復(fù)選框最常見(jiàn)的用法。
要判斷是否要使用復(fù)選框時(shí),可以遵循以下規(guī)律。
(1)該功能只有兩種選擇狀態(tài):是、否。
(2)該功能同一時(shí)間只能激活且必須激活一種選擇狀態(tài)。
(3)該功能的兩種狀態(tài)為互斥關(guān)系,如果選擇了一種狀態(tài),則自動(dòng)關(guān)閉另一種狀態(tài)。
復(fù)選框其實(shí)就是一個(gè)開(kāi)關(guān),可以通過(guò)單擊它來(lái)切換打開(kāi)和關(guān)閉。一般開(kāi)關(guān)的應(yīng)用包括了選項(xiàng)勾選和頁(yè)簽。頁(yè)簽是復(fù)選框功能的一個(gè)高級(jí)應(yīng)用。
創(chuàng)建復(fù)選框
1.第一種方法:使用NGUI做好的預(yù)設(shè)。
2.第二種方法:自己拼裝復(fù)選框控件。
(1)通過(guò)Unity頂部NGUI菜單Create中選擇創(chuàng)建一個(gè)Sprite,然后設(shè)置它的圖片,讓這個(gè)Sprite作為復(fù)選框的底框。
(2)因?yàn)樾枰@個(gè)復(fù)選框來(lái)接收單擊事件,所以為這個(gè)底框Sprite制作一個(gè)BoxCollider,方法可以使用Unity頂部NGUI菜單中Attach->BoxCollider。
(3)需要為這個(gè)復(fù)選框創(chuàng)建一個(gè)復(fù)選框的核心組件:UIToggle,選中底框后,通過(guò)選擇AddComponent->NGUI->Interaction->UIToggle為這個(gè)復(fù)選框的底框附加一個(gè)UIToggle組件。
(4)在這個(gè)底框的Sprite下面創(chuàng)建一個(gè)新的、表示選中狀態(tài)的Sprite,比如一個(gè)勾。
(5)將這個(gè)表示選中狀態(tài)的Sprite拖動(dòng)到底框UIToggle組件中StateTransition模塊下的Sprite選項(xiàng)中,然后將底框的UIToggle組件中的Starting State勾上。
一般情況下,會(huì)在復(fù)選概況的旁邊寫(xiě)上一些文字,表示這個(gè)復(fù)選框代表的什么選項(xiàng),即在底框物體下面創(chuàng)建一個(gè)Label作為子物體,然后調(diào)整位置即可。
復(fù)選框的核心組件UIToggle
1.Group
開(kāi)關(guān)組的設(shè)置。默認(rèn)為0,表示沒(méi)有開(kāi)關(guān)組。
當(dāng)有多個(gè)Toggle的Group星等且都不為0的時(shí)候,表示它們?cè)谕粋€(gè)開(kāi)關(guān)組當(dāng)中,同一個(gè)開(kāi)關(guān)組內(nèi)的開(kāi)關(guān)只允許打開(kāi)一個(gè)。
當(dāng)一個(gè)Toggle不屬于某一個(gè)開(kāi)關(guān)組,既Group為0時(shí),它就屬于一個(gè)獨(dú)體開(kāi)關(guān),可以通過(guò)自身來(lái)進(jìn)行開(kāi)關(guān),當(dāng)它屬于某一個(gè)開(kāi)關(guān)組時(shí),就無(wú)法通過(guò)單擊自身來(lái)進(jìn)行開(kāi)啟和關(guān)閉了,因?yàn)橐粋€(gè)開(kāi)關(guān)組內(nèi)必須要有一個(gè)開(kāi)關(guān)是出于開(kāi)啟狀態(tài),它必須通過(guò)開(kāi)關(guān)組內(nèi)部的過(guò)個(gè)Toggle之間的切換來(lái)進(jìn)行關(guān)閉和開(kāi)啟。
2.Starting State
是否初始狀態(tài),如果選中,則為初始狀態(tài),不選中則不是。
這個(gè)設(shè)置項(xiàng)的意義在于:當(dāng)開(kāi)關(guān)是一個(gè)獨(dú)立開(kāi)關(guān)(Group為0)時(shí),勾選Starting State意味著在初始狀態(tài)下,開(kāi)關(guān)屬于開(kāi)啟狀態(tài)。當(dāng)開(kāi)關(guān)屬于一個(gè)開(kāi)關(guān)組時(shí),勾選Starting State則意味著在初始狀態(tài)下,這個(gè)開(kāi)關(guān)組中初始處于代開(kāi)狀態(tài)的為這一個(gè)開(kāi)關(guān)。
當(dāng)一個(gè)開(kāi)關(guān)組中有一個(gè)以上的開(kāi)關(guān)都勾選了Starting State時(shí),則以這個(gè)組中排在最后的一個(gè)勾選了Starting State的Toggle為默認(rèn)開(kāi)啟的開(kāi)關(guān)。
3.State Transition 模塊
這個(gè)模塊是為了設(shè)置勾選的時(shí)候的一些關(guān)聯(lián)UI表現(xiàn)。
Sprite是設(shè)置選中狀態(tài)下要顯示出來(lái)的Sprite。設(shè)置的方法為,將表示選中的Sprite拖動(dòng)到這個(gè)選項(xiàng)中即可。
Animation是設(shè)置狀態(tài)切換時(shí)的動(dòng)畫(huà)。
Transition是選擇開(kāi)關(guān)切換時(shí)的一個(gè)平滑效果,里面提供了兩種選項(xiàng)進(jìn)行選擇:Smooth和Instant,如果選擇Smooth,則在進(jìn)行開(kāi)關(guān)切換時(shí),表示選中的那個(gè)Sprite的消失和出現(xiàn)會(huì)顯示得更加平滑一些;如果選擇Instant,則開(kāi)關(guān)切換時(shí),表示選中的那個(gè)Sprite的消失和出現(xiàn)會(huì)瞬間出現(xiàn)。
4.On Value Change
這里是設(shè)置當(dāng)前開(kāi)關(guān)狀態(tài)改變時(shí)觸發(fā)的函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的制作复选框(Toggle)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 漏洞重温之文件上传(FUZZ)
- 下一篇: hive与hbase的以及mongodb