Unity 按鈕添加OnClick事件操作

1、在Hierarchy面板右鍵UI>Button

2、創建一個空物體

3、創建一個腳本 ButtonClick.cs,定義一個Click方法(必須為Public)

4、把腳本掛在到空物體上

5、將空物體拖到如下圖 None(Object) 位置

6、在右側選擇 ButtonClick>Click 方法

7、如下

補充:Unity三種添加Click事件

我就廢話不多說瞭,大傢還是直接看代碼吧~

 public  Button btn;
 void Start () {
        // 一、btn.onClick.AddListener(OnBtnClick);
        // 二、btn.onClick.AddListener(delegate () { OnBtnClick(); });
        btn.onClick.AddListener(() => {
            OnBtnClick();
        });
 } 
    void OnBtnClick()
    {
        Debug.Log("0000");
    }

補充:Unity UGUI 動態添加Button.OnClick()事件

如下所示:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Events;
using UnityEngine.UI; 
public class ButtonOnClickTest: MonoBehaviour {
 
 // Use this for initialization
 void Start () {
  List<string> btnsName = new List<string>();
  btnsName.Add("BtnPlay");
  btnsName.Add("BtnShop");
  btnsName.Add("BtnLeaderboards");
 
  foreach(string btnName in btnsName)
  {
   GameObject btnObj = GameObject.Find(btnName);
   Button btn = btnObj.GetComponent<Button>();
   btn.onClick.AddListener(delegate() {
    this.OnClick(btnObj); 
   });
  } 
 }
 
 public void OnClick(GameObject sender)
 {
  switch (sender.name)
  {
  case "BtnPlay":
   Debug.Log("BtnPlay");
   break;
  case "BtnShop":
   Debug.Log("BtnShop");
   break;
  case "BtnLeaderboards":
   Debug.Log("BtnLeaderboards");
   break;
  default:
   Debug.Log("none");
   break;
  }
 }
 
 // Update is called once per frame
 void Update () {
 
 }
}

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀:

    None Found