Unity 按钮添加OnClick事件操作

 更新时间:2021年04月09日 15:05:26   作者:小东灬灬  
这篇文章主要介绍了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 () {
 
 }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • C#中委托的进一步理解

    C#中委托的进一步理解

    这篇文章主要介绍了C#中委托的进一步理解,本文讲解了委托类型、建立委托链、移除委托链等内容,需要的朋友可以参考下
    2015-02-02
  • C#实现进制转换

    C#实现进制转换

    这篇文章介绍了C#实现进制转换的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C#浅拷贝和深拷贝实例解析

    C#浅拷贝和深拷贝实例解析

    这篇文章主要介绍了C#浅拷贝和深拷贝,是比较重要的概念,需要的朋友可以参考下
    2014-08-08
  • C#实现向数组指定索引位置插入新的元素值

    C#实现向数组指定索引位置插入新的元素值

    这篇文章给大家介绍了利用C#实现向数组指定索引位置插入新的元素值,首先需要定义一个一维数组,然后修改数组的长度,从而在其中增加一个元素,需要的朋友可以参考下
    2024-02-02
  • C#简单生成缩略图的方法

    C#简单生成缩略图的方法

    这篇文章主要介绍了C#简单生成缩略图的方法,涉及C#操作图片的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • 详解C#中有趣的 SourceGenerator生成器

    详解C#中有趣的 SourceGenerator生成器

    源生成器是Roslyn编译器的一个强大特性,允许开发者在编译阶段注入自定义代码,本文通过一个实例探究源生成器的使用方法及其在AOT场景的应用,并利用WinDbg工具深入分析Roslyn的内部机制
    2024-10-10
  • C#3.0中Lambda表达式详解

    C#3.0中Lambda表达式详解

    在C#3.0中,微软给我带来的一些新特性可能是以前所有开发语言都没有的特性。这无疑大大的体现了C#3.0在开发语言中强大的优势
    2013-09-09
  • C# 基础之运算符

    C# 基础之运算符

    这篇文章介绍了C# 运算符的基础知识,有需要的朋友可以参考一下
    2013-09-09
  • C#将HashTable中键列表或值列表复制到一维数组的方法

    C#将HashTable中键列表或值列表复制到一维数组的方法

    这篇文章主要介绍了C#将HashTable中键列表或值列表复制到一维数组中方法,涉及C#操作HashTable的相关技巧,需要的朋友可以参考下
    2015-04-04
  • c#中的interface abstract与virtual介绍

    c#中的interface abstract与virtual介绍

    abstract 与virtual : 方法重写时都使用 override 关键字,interface中的方法和abstract方法都要求实现
    2013-07-07

最新评论