制作输入框(Input)
怎樣判斷是否應(yīng)當(dāng)使用輸入框
輸入框,就是用戶可以自由輸入文本的地方。當(dāng)需要判斷是否需要使用輸入框時,可以遵循一條原則:凡是需要用戶自主輸入文本的地方,幾乎都必須使用輸入框。
輸入框的常見用法:輸入登錄賬號和密碼、輸入角色名稱、輸入聊天內(nèi)容等。
創(chuàng)建輸入框
輸入框的3個核心控件:BoxCollider組件允許UI能輸入事件、UIInput組件允許玩家能輸入自己的文字、一個UILabel來顯示輸入的文字。
第一種創(chuàng)建方式:自己拼裝
(1)創(chuàng)建一個Sprite作為輸入框的底板。
(2)為這個輸入框的底板附上UIInput組件,附加方法為AddComponent->NGUI->UI->Input Field。
(3)為這個輸入框附加一個BoxCollider,附加方法為選中底板Sprite,然后選擇Unity頂部NGUI菜單并選擇Attach->BoxCollider。或者AddComponent->Physics->BoxCollider(此種方式創(chuàng)建的需要自主調(diào)整Box的尺寸用以匹配輸入框大小)。
(4)在這個輸入框下面創(chuàng)建一個Label子物體,創(chuàng)建方法為選中輸入框,然后選擇Unity頂部NGUI菜單,選擇Create->Label即可。
(5)將這個新創(chuàng)建的Label子物體拖入到底框的Input組件中的Label選項中。
第二種創(chuàng)建方式:Prefab Tool Bar中直接拖入
核心組件Input設(shè)置
Input組件是輸入框的核心組件,NGUI顯示文字幾乎全部依賴Label組件,所以,Input組件它本身是無法顯示文字的,它必須和一個Label有一定的關(guān)聯(lián),讓這個Label來幫助顯示Input的文本內(nèi)容。
1.Label設(shè)置
如果在這里不設(shè)置Label,運行之后單擊輸入框?qū)箦e,導(dǎo)致輸入框無法使用。
2.Starting Value
默認(rèn)輸入的文字。
默認(rèn)輸入的文字:當(dāng)運行游戲時,輸入框默認(rèn)輸入的文字,這個文本是模擬玩家輸入進(jìn)去的,就好像登錄QQ時自動填充了你的QQ號一樣,這個文本是一個屬于輸入的文本、真實有效的輸入文本(只不過它是初始自動就輸入進(jìn)去了而已)。
初始顯示的文本:這個是輸入框在沒有接收用戶輸入時顯示的提示文本,例如:“請輸入密碼”,“請在這里單擊進(jìn)行聊天”等提示性文字,用戶單機輸入框之后文字就消失了變成了用戶輸入的文本的顯示。這個初始顯示的文本只有一個純粹的提示作用,不屬于輸入的文本、是一個無效的文本。
初始顯示的文本在Input相關(guān)聯(lián)的Label中進(jìn)行設(shè)置,這個關(guān)聯(lián)的Label的文本內(nèi)容就是輸入框初始顯示的內(nèi)容。
3.Saved As
輸入的內(nèi)容在Player Pref中的哪個字段保存。這個一般用不到,而且它會自動保存,基本不用去管它。如果有特殊需求,可以在這里設(shè)置。
4.Active Text Color
活動文本的顏色和透明度設(shè)置,也就是用戶在輸入文字時的文字顏色和透明度。
5.Inactive Color
不活動的文字顏色和透明度,這個可以用來設(shè)定初始顯示的文字的顏色透明度。
6.Caret Color
這個可以設(shè)定插入符的顏色和透明度。
7.Selection Color
選中的顏色和透明度,這個表示的是選中輸入的文字時,覆蓋在文本上的那一層遮罩的顏色,就像在Word辦公軟件中,輸入的字可以通過拖動鼠標(biāo)光標(biāo)來選中他們一樣。
8.Input Type
輸入類型的設(shè)置,默認(rèn)為Standard標(biāo)準(zhǔn)輸入。
Standard
標(biāo)準(zhǔn)輸入類型,輸入的文字會正常一個挨一個地顯示出來,它的對齊方式全部由Input相關(guān)聯(lián)的Label決定。
AutoCorrect
自動調(diào)整模式,類似于Label中的自動調(diào)整模式。
Passward
密碼模式,在這種模式下,輸入的文字會自動地變成*符號。
9.Mobile Type
這是輸入文本時,鍵盤的類型設(shè)定。它有以下幾種類型:
Default;
ASCII Capable(任何格式都允許);
NumbersAndPunctuation;
URL;
NumberPad;
PhonePad;
NamePhonePad;
EmailAddress;
10.Validation
驗證。默認(rèn)為None沒有驗證,可以驗證整數(shù)、浮點數(shù)等,如果輸入的字符不屬于驗證類型將無法輸入(整數(shù)允許視為浮點數(shù))。
11.Character Limit
可輸入的最大字符數(shù)限制。需要注意的是,一個漢子要占用兩個字符。
12.On Submit
這里是提交輸入內(nèi)容時的觸發(fā)事件函數(shù)設(shè)定。
13.On Change
這里是當(dāng)輸入內(nèi)容改變時的觸發(fā)事件函數(shù)設(shè)定。
輸入框使用的一些注意事項
(1)輸入框Input本身是無法顯示文字的,它必須借助于一個Label來幫它顯示輸入的文本。
(2)輸入框輸入文字的字體,是在輸入框關(guān)聯(lián)的Label中設(shè)定的,這個關(guān)聯(lián)的Label用的什么字體,則輸入框中輸入的內(nèi)容就會是什么字體。
(3)輸入框必須要有一個BoxCollider和一個Sprite底框,否則無法輸入。
(4)輸入框中對輸入的文本的設(shè)定都受關(guān)聯(lián)的Label的影響,因為它本身是借助這個Label來顯示文字的。但是,如果發(fā)生沖突,比如在Input組件中設(shè)定文字顏色為紅色,而在關(guān)聯(lián)的Label中設(shè)定文字顏色為白色,那么將會以Input中的設(shè)置為準(zhǔn)。
(5)如果發(fā)生以下情況,都將造成輸入框無法顯示文字:
超出最大字符數(shù)限定了;
輸入的字符不符合要求的驗證類型;
關(guān)聯(lián)的Label所選用的字體中沒有這個文字;
關(guān)聯(lián)的Label中設(shè)定了文字大小超出范圍則不顯示;
將文字設(shè)為全透明了;
(6)輸入的文字可以從Input中的value變量讀取,也可以從關(guān)聯(lián)的Label中的text變量讀取。
(7)將相關(guān)聯(lián)的Label設(shè)為輸入框的子物體,就可以保證輸入的文字和底框保持相對位置不變。
總結(jié)
以上是生活随笔為你收集整理的制作输入框(Input)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快递中转点
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?