Unity按钮点击事件

Posted 木木娅.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity按钮点击事件相关的知识,希望对你有一定的参考价值。

一.可视化创建及事件绑定

首先给要在Inspector面板点击最下面的Add Component搜索Button

 

 添加Button组件

然后在编写一段脚本添加到任意的游戏对象

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Text : MonoBehaviour

    /// <summary>
    /// 开始按钮点击后调用此方法
    /// </summary>
    public void OnStartButtonClick()
    
        Debug.Log("哈哈哈哈!看,你好像是个憨憨!!");
    

重点是:一定要是公开的public类型的方法!!

然后在button组件中找到箭头所指的

挂载脚本的对象拖到 箭头指向的位置

然后 在箭头指向的位置

选择 我们刚刚的OnStartButtonClick()方法

 运行之后点击按钮就完成了

二 .直接通过脚本绑定

创建一个脚本添加到任意游戏对象

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//后面要使用一些UI(该处就是Button)组件,所以一定要添加该命名空间

public class Text : MonoBehaviour

    private Button btn_Start;//定义一个Button类型的变量

    private void Start()
    
        btn_Start = GameObject.Find("btn_Start").GetComponent<Button>();//通过Find查找名称获得我们要的Button组件
        btn_Start.onClick.AddListener(OnStartButtonClick);//监听点击事件
    
   /// <summary>
   /// 点击的之后调用的方法
   /// </summary>
    private void OnStartButtonClick()
    
        Debug.Log("我是大聪明");
    


运行结果

unity基础交互入门(按钮点击事件的三种方法)

一、在按钮绑定事件

1、在资源面板创建C#脚本

2、创建点击事件需要执行的代码(这里以loadMain为例),新增一个叫OnStartButtonClick的Public方法。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class loadMain : MonoBehaviour

    void Start()
    
       
    
    void Update()
    
        
    
    public void OnStartButtonClick()
    
        Debug.Log("prefabName1");//只能运行时看到输出,可以换其他点击事件。
    

可以选择生成或者调试,从VS更新代码到Unity。

3、场景中创建Button和empty(生成空的GameObject)



4、将代码挂在刚刚的GameObject上(这里将GameObject重命名为loader),直接从资源窗口拖动到面板即可。

5、点击Button,找到面板的onclick(),选择刚刚的GameObject(即loader)

6、在右侧选择对应的方法。

二、直接通过脚本绑定事件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//Button组件的依赖

public class a : MonoBehaviour


    private Button btn_Start;//定义一个Button类型的变量
    // Start is called before the first frame update
    void Start()
    
        btn_Start = GameObject.Find("Button").GetComponent<Button>();//通过Find查找名称获得我们要的Button组件
        btn_Start.onClick.AddListener(OnStartButtonClick);//监听点击事件
    
    private void OnStartButtonClick()
    
        Debug.Log("点击事件");
    

    // Update is called once per frame
    void Update()
    
        
    


三、脚本创建按钮绑定方法

    void createBtn()
    
        GameObject itemList = GameObject.Find("itemList");
        for (int i = 0; i < itemArray.Length; i++)
        
            GameObject itemButtonObj = new GameObject(itemArray[i].itemName);
            itemButtonObj.transform.SetParent(itemList.transform, false);
            /*itemButtonObj.transform.parent = itemList.transform;*/

            Button itemButton = itemButtonObj.AddComponent<Button>();
            Image img = itemButtonObj.AddComponent<Image>();
            img.sprite = Resources.Load("Assets/Resources/Textures/A.png") as Sprite;
            itemButton.GetComponent<Button>().onClick.AddListener(displayObj);
        
    

四、拓展阅读

《Unity:从入门到入行》

《使用C#脚本时不同类之间相互调用方法》

《在Unity中进行断点调试》

以上是关于Unity按钮点击事件的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D日常开发Unity循环里面给按钮添加绑定事件

Unity3D日常开发Unity循环里面给按钮添加绑定事件

Unity3D 之UGUI 按钮

unity3d ugui 怎么判断哪个按钮被点击

Unity3d 按钮点击相关问题。

Unity3D中自带事件函数的执行顺序