欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity技術(shù)手冊之Button按鈕使用實例詳解

 更新時間:2022年11月08日 09:33:40   作者:芝麻粒兒  
這篇文章主要為大家介紹了Unity技術(shù)手冊之Button按鈕使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

??實踐過程

為了方便更多的人(新手)看明白,使用的漢字,真實項目盡量使用英文規(guī)則昂。

創(chuàng)建Button按鈕很簡單,在Hierachy面板中直接右鍵找到UI-Button即可。創(chuàng)建后我們可以看到Button其實就是掛載了一個Image組件一個Button組件,順便攜帶一個Text子物體。

其中Image組件的屬性,小空之間有單獨介紹過,在這不贅述了。我們詳細(xì)看Button組件中的內(nèi)容,注意,所有參數(shù)是運行時生效

Interactable:表示是否可交互,取消勾選Button就不能觸發(fā)點擊了,并且設(shè)置的顏色或精靈等都不會生效。

Transition:設(shè)置Button的過度效果,有四個設(shè)置選項(下方有圖,重點屬性)無、顏色過度、精靈圖切換過度、動畫過度。

Color Tint-表示顏色過度

  • Target Graphic:表示該組件的屬性作用于哪個對象或者說UI控件實現(xiàn)效果的對象,一般都是自身,雖然可以指定其他按鈕,但是這種需求不多。
  • Normal Color:正常顏色。鼠標(biāo)不在Button上時的顏色。
  • Highlighted Color:高亮顏色。鼠標(biāo)懸浮在Button上時的顏色(不點擊)。
  • Pressed Color:表示按壓顏色值。鼠標(biāo)點擊Button時的顏色,松開后恢復(fù)。
  • Selected Color:表示被選中的顏色值。鼠標(biāo)點擊Button時的顏色,松開后保持不變,除非點擊Button外的界面才會恢復(fù)。
  • Disabled Color:禁用時的顏色。禁用Button后的顏色,腳本中禁用。
  • Color Multiplier:顏色倍數(shù),1-5之間,一般默認(rèn)1即可,如果想突出顏色,增大即可。
  • Fade Duration:淡入淡出的持續(xù)時間,表示不同按鈕狀態(tài)切換的時間。

Sprite Swap-表示精靈過度

  • Target Graphic:表示該組件的屬性作用于哪個對象或者說UI控件實現(xiàn)效果的對象,一般都是自身,雖然可以指定其他按鈕,但是這種需求不多。
  • Highlighted Sprite:高亮?xí)r候顯示的精靈。鼠標(biāo)懸浮在Button上時的精靈(不點擊)。
  • Pressed Sprite:表示按壓精靈值。鼠標(biāo)點擊Button時的精靈,松開后恢復(fù)。
  • Selected Sprite:表示被選中的精靈。鼠標(biāo)點擊Button時的精靈,松開后保持不變,除非點擊Button外的界面才會恢復(fù)。
  • Disabled Sprite:禁用時的精靈。禁用Button后的精靈,腳本中禁用。

Animation-動畫

  • Normal Trigger:正常時間的動畫。鼠標(biāo)不在Button上時的動畫。
  • Highlighted Trigger:高亮動畫。鼠標(biāo)懸浮在Button上時的動畫(不點擊)。
  • Pressed Trigger:表示按壓動畫值。鼠標(biāo)點擊Button時的動畫,松開后恢復(fù)。
  • Selected Trigger:表示被選中的動畫值。鼠標(biāo)點擊Button時的動畫,松開后保持不變,除非點擊Button外的界面才會恢復(fù)。
  • Disabled Trigger:禁用時的動畫。禁用Button后的動畫,腳本中禁用。

需要點擊【Auto Generate Animation】創(chuàng)建動畫控制器,然后給上面的這幾個動畫文件錄制動畫(如縮放等)

Visualize:是否可視化。打開后會在Scene中顯示出每個UI控件之間的輔助順序,和Gizmos輔助很相似,但不受Gizmos控制。

Navigation :控件間導(dǎo)航,一般我們設(shè)置為None,該屬性控制焦點自動為下一個,比如多個按鈕,并且你沒在看是范圍內(nèi),雖然無法鼠標(biāo)點擊但是可以鍵盤空格鍵觸發(fā)。

On Click() :給按鈕添加響應(yīng)事件(將腳本掛載在該Button上,拖拽Button到這,即可從下拉中找到腳本中public類型的方法,指定就表示點擊觸發(fā)該方法),除了這還有代碼動態(tài)添加的方式(下方詳細(xì))。 還有圖中的Runtime Only表示運行后才會響應(yīng)事件,還有兩個選項,一個是off從不響應(yīng),一個是Editor And Runtime表示即使沒運行也能響應(yīng),默認(rèn)即可。

public class TestClick : MonoBehaviour
    {
        private void Start()
        {
            Button btn = gameObject.GetComponent<Button>();
            //添加事件寫法一-只能添加方法名 無法傳遞參數(shù)
            // btn.onClick.AddListener(methodA);
            //添加事件寫法二 -可以傳遞參數(shù)
            // btn.onClick.AddListener(delegate { methodB(); });
            // btn.onClick.AddListener(() => { methodA();});
            //方式一添加多個方法
            // btn.onClick.AddListener(methodA);
            // btn.onClick.AddListener(methodB);
            //方式二添加多個方法
            // btn.onClick.AddListener(method);
            //下方是簡易封裝的一種寫法,和Android中的類似
            List<string> btnsName = new List<string>();
            btnsName.Add("想要添加事件的");
            btnsName.Add("場景中");
            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 "場景中":
                    Debug.Log("場景中");
                    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ù)手冊之Button按鈕使用實例詳解的詳細(xì)內(nèi)容,更多關(guān)于Unity技術(shù)Button按鈕的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論