Unity按钮事件的几种绑定方式

许久没有写C#代码了,对于一些东西自己给整忘了,在此记录下,方便以后自己查阅

获取到按钮组件,我是将代码挂载在其父节点上。

一、代码动态绑定

在代码中获取此按钮,并对他就进行绑定。一般都是使用的这类情况。

 private Button backBtn;
    private Button nextBtn;
    void Start()
    {
    
    
     //transform.Find,只有在有父子级关系时查找,并且可以查找到隐藏(即active为false的对象)
     //返回值类型是Transform 类型
        backBtn = transform.Find("backGame").GetComponent<Button>();
        //绑定按钮函数
        backBtn.onClick.AddListener(OnClickBackBtn);
       //GameObject.Find,在整个Hierarchy面板中
       //返回值是一个GameObject类型
        nextBtn = GameObject.Find("Next").GetComponent<Button>();
        nextBtn.onClick.AddListener(OnClickNextBtn);
    }
    //按钮函数
    void OnClickBackBtn()
    {
    
    
        
    }
     void OnClickNextBtn()
    {
    
    
        
    }

二、直接拖拽。

在脚本中写一个public函数,作为按钮的监听函数,在按钮的Inspector面板中,将这个函数绑定到按钮中。

public void OnClcikTestBtn()
    {
    
    
        Debug.Log("直接绑定按钮");
    }

在Inspector面板中添加点击事件:
在这里插入图片描述

将带有这个脚本的对象拖拽到添加到点击事件对象中:
在这里插入图片描述
选择刚在脚本中写的public函数,即可将此按钮与这个函数进行绑定。
在这里插入图片描述

三、直接对按钮新建一个文件进行绑定

这个方法和第一个方式有点类似,只不过是单个文件对应一个按钮,比较鸡肋。

public class TestBtn : MonoBehaviour
{
    
    
    
    void Start()
    {
    
    
        Button button= this.GetComponent<Button>();
        button.onClick.AddListener(OnClickBtn);
    }

    private void OnClickBtn()
    {
    
    
        Debug.Log("TestBtn is onclick");
    }
}

将脚本挂载在对应的button按钮上
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lml_w/article/details/122365503