Unity技術(shù)手冊(cè)之Button按鈕使用實(shí)例詳解
??實(shí)踐過(guò)程
為了方便更多的人(新手)看明白,使用的漢字,真實(shí)項(xiàng)目盡量使用英文規(guī)則昂。
創(chuàng)建Button按鈕很簡(jiǎn)單,在Hierachy面板中直接右鍵找到UI-Button即可。創(chuàng)建后我們可以看到Button其實(shí)就是掛載了一個(gè)Image組件一個(gè)Button組件,順便攜帶一個(gè)Text子物體。
其中Image組件的屬性,小空之間有單獨(dú)介紹過(guò),在這不贅述了。我們?cè)敿?xì)看Button組件中的內(nèi)容,注意,所有參數(shù)是運(yùn)行時(shí)生效。
Interactable:表示是否可交互,取消勾選Button就不能觸發(fā)點(diǎn)擊了,并且設(shè)置的顏色或精靈等都不會(huì)生效。
Transition:設(shè)置Button的過(guò)度效果,有四個(gè)設(shè)置選項(xiàng)(下方有圖,重點(diǎn)屬性)無(wú)、顏色過(guò)度、精靈圖切換過(guò)度、動(dòng)畫過(guò)度。
Color Tint-表示顏色過(guò)度
- Target Graphic:表示該組件的屬性作用于哪個(gè)對(duì)象或者說(shuō)UI控件實(shí)現(xiàn)效果的對(duì)象,一般都是自身,雖然可以指定其他按鈕,但是這種需求不多。
- Normal Color:正常顏色。鼠標(biāo)不在Button上時(shí)的顏色。
- Highlighted Color:高亮顏色。鼠標(biāo)懸浮在Button上時(shí)的顏色(不點(diǎn)擊)。
- Pressed Color:表示按壓顏色值。鼠標(biāo)點(diǎn)擊Button時(shí)的顏色,松開(kāi)后恢復(fù)。
- Selected Color:表示被選中的顏色值。鼠標(biāo)點(diǎn)擊Button時(shí)的顏色,松開(kāi)后保持不變,除非點(diǎn)擊Button外的界面才會(huì)恢復(fù)。
- Disabled Color:禁用時(shí)的顏色。禁用Button后的顏色,腳本中禁用。
- Color Multiplier:顏色倍數(shù),1-5之間,一般默認(rèn)1即可,如果想突出顏色,增大即可。
- Fade Duration:淡入淡出的持續(xù)時(shí)間,表示不同按鈕狀態(tài)切換的時(shí)間。
Sprite Swap-表示精靈過(guò)度
- Target Graphic:表示該組件的屬性作用于哪個(gè)對(duì)象或者說(shuō)UI控件實(shí)現(xiàn)效果的對(duì)象,一般都是自身,雖然可以指定其他按鈕,但是這種需求不多。
- Highlighted Sprite:高亮?xí)r候顯示的精靈。鼠標(biāo)懸浮在Button上時(shí)的精靈(不點(diǎn)擊)。
- Pressed Sprite:表示按壓精靈值。鼠標(biāo)點(diǎn)擊Button時(shí)的精靈,松開(kāi)后恢復(fù)。
- Selected Sprite:表示被選中的精靈。鼠標(biāo)點(diǎn)擊Button時(shí)的精靈,松開(kāi)后保持不變,除非點(diǎn)擊Button外的界面才會(huì)恢復(fù)。
- Disabled Sprite:禁用時(shí)的精靈。禁用Button后的精靈,腳本中禁用。
Animation-動(dòng)畫
- Normal Trigger:正常時(shí)間的動(dòng)畫。鼠標(biāo)不在Button上時(shí)的動(dòng)畫。
- Highlighted Trigger:高亮動(dòng)畫。鼠標(biāo)懸浮在Button上時(shí)的動(dòng)畫(不點(diǎn)擊)。
- Pressed Trigger:表示按壓動(dòng)畫值。鼠標(biāo)點(diǎn)擊Button時(shí)的動(dòng)畫,松開(kāi)后恢復(fù)。
- Selected Trigger:表示被選中的動(dòng)畫值。鼠標(biāo)點(diǎn)擊Button時(shí)的動(dòng)畫,松開(kāi)后保持不變,除非點(diǎn)擊Button外的界面才會(huì)恢復(fù)。
- Disabled Trigger:禁用時(shí)的動(dòng)畫。禁用Button后的動(dòng)畫,腳本中禁用。
需要點(diǎn)擊【Auto Generate Animation】創(chuàng)建動(dòng)畫控制器,然后給上面的這幾個(gè)動(dòng)畫文件錄制動(dòng)畫(如縮放等)
Visualize:是否可視化。打開(kāi)后會(huì)在Scene中顯示出每個(gè)UI控件之間的輔助順序,和Gizmos輔助很相似,但不受Gizmos控制。
Navigation :控件間導(dǎo)航,一般我們?cè)O(shè)置為None,該屬性控制焦點(diǎn)自動(dòng)為下一個(gè),比如多個(gè)按鈕,并且你沒(méi)在看是范圍內(nèi),雖然無(wú)法鼠標(biāo)點(diǎn)擊但是可以鍵盤空格鍵觸發(fā)。
On Click() :給按鈕添加響應(yīng)事件(將腳本掛載在該Button上,拖拽Button到這,即可從下拉中找到腳本中public類型的方法,指定就表示點(diǎn)擊觸發(fā)該方法),除了這還有代碼動(dòng)態(tài)添加的方式(下方詳細(xì))。 還有圖中的Runtime Only表示運(yùn)行后才會(huì)響應(yīng)事件,還有兩個(gè)選項(xiàng),一個(gè)是off從不響應(yīng),一個(gè)是Editor And Runtime表示即使沒(méi)運(yùn)行也能響應(yīng),默認(rèn)即可。
public class TestClick : MonoBehaviour { private void Start() { Button btn = gameObject.GetComponent<Button>(); //添加事件寫法一-只能添加方法名 無(wú)法傳遞參數(shù) // btn.onClick.AddListener(methodA); //添加事件寫法二 -可以傳遞參數(shù) // btn.onClick.AddListener(delegate { methodB(); }); // btn.onClick.AddListener(() => { methodA();}); //方式一添加多個(gè)方法 // btn.onClick.AddListener(methodA); // btn.onClick.AddListener(methodB); //方式二添加多個(gè)方法 // btn.onClick.AddListener(method); //下方是簡(jiǎn)易封裝的一種寫法,和Android中的類似 List<string> btnsName = new List<string>(); btnsName.Add("想要添加事件的"); btnsName.Add("場(chǎng)景中"); btnsName.Add("按鈕的名字"); foreach (string btnName in btnsName) { GameObject btnObj = GameObject.Find(btnName); Button btnTemp = btnObj.GetComponent<Button>(); btnTemp.onClick.AddListener(delegate() { this.OnClick(btnObj); }); //或者: //btnTemp.onClick.AddListener(() => { OnClick(btnObj); }); } } public void OnClick(GameObject sender) { switch (sender.name) { case "想要添加事件的": Debug.Log("想要添加事件的"); break; case "場(chǎng)景中": Debug.Log("場(chǎng)景中"); break; case "按鈕的名字": Debug.Log("按鈕的名字"); break; default: Debug.Log("none"); break; } } private void method() { methodA(); methodB(); } private void methodA(String param) { Debug.Log("事件A-方法A-攜帶參數(shù)" + param); } private void methodA() { Debug.Log("事件A-方法A"); } private void methodB() { Debug.Log("事件B-方法B"); } }
以上就是Unity技術(shù)手冊(cè)之Button按鈕使用實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于Unity技術(shù)Button按鈕的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Unity中的RegisterPlugins實(shí)用案例深入解析
- Unity的IPostprocessBuild實(shí)用案例深入解析
- Unity的IPreprocessBuild實(shí)用案例深入解析
- Unity的IFilterBuildAssemblies實(shí)用案例深入解析
- Unity技術(shù)手冊(cè)之Slider滑動(dòng)器使用實(shí)例詳解
- Unity游戲開(kāi)發(fā)實(shí)現(xiàn)背包系統(tǒng)的示例詳解
- Unity游戲開(kāi)發(fā)實(shí)現(xiàn)場(chǎng)景切換示例
- Unity的BuildPlayerProcessor實(shí)用案例深入解析
相關(guān)文章
C# Winform實(shí)現(xiàn)導(dǎo)入和導(dǎo)出Excel文件
這篇文章主要為大家詳細(xì)介紹了C# Winform實(shí)現(xiàn)導(dǎo)入和導(dǎo)出Excel文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12C#使用Json.Net對(duì)JSON與對(duì)象的序列化與反序列化
這篇文章介紹了Json.Net對(duì)JSON與對(duì)象的序列化與反序列化,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05Unity3D實(shí)現(xiàn)虛擬按鈕控制人物移動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)虛擬按鈕控制人物移動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02c# HttpWebRequest通過(guò)代理服務(wù)器抓取網(wǎng)頁(yè)內(nèi)容應(yīng)用介紹
在C#項(xiàng)目開(kāi)發(fā)過(guò)程中可能會(huì)有些特殊的需求比如:用HttpWebRequest通過(guò)代理服務(wù)器驗(yàn)證后抓取網(wǎng)頁(yè)內(nèi)容,要想實(shí)現(xiàn)此方法并不容易,本文整理了一下,有需求的朋友可以參考下2012-11-11在C#中g(shù)lobal關(guān)鍵字的作用及其用法
global 是 C# 2.0 中新增的關(guān)鍵字,理論上說(shuō),如果代碼寫得好的話,根本不需要用到它,但是不排除一些特別的情況,比如修改別人的代碼,本文僅舉例說(shuō)明。2016-03-03C#操作配置文件app.config、web.config增刪改
這篇文章介紹了C#操作配置文件app.config、web.config增刪改的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05c# winform取消右上角關(guān)閉按鈕的實(shí)現(xiàn)方法
本文是對(duì)c#中winform取消右上角關(guān)閉按鈕的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下。希望對(duì)大家有所幫助2013-10-10