Unity给所有按钮绑定监听事件

这篇具有很好参考价值的文章主要介绍了Unity给所有按钮绑定监听事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一步:

//定义事件参数

public class MyEventArgs
{
    // 每个button的编号
    public int id;
    // 每个 Button 本身
    public GameObject obj;
}

第二步:

Button[] buttons;

// 鼠标点击委托
    public delegate void SkillButtonClickDelegate(MyEventArgs arg);
    public SkillButtonClickDelegate SkillButtonClick;

private void Start()
    {
        buttons = GetComponentsInChildren<Button>();
        for (int i = 0; i < buttons.Length; i++)
        {
            MyEventArgs arg = new MyEventArgs();
            arg.id = i + 1;
            arg.obj = buttons[i].gameObject;
            buttons[i].onClick.AddListener(() => OnButtonClickAction(arg));//给所有按钮绑定监听事件
        }
    }

第三步:

//所有按钮监听事件
    void OnButtonClickAction(MyEventArgs arg)
    {
            if (SkillButtonClick != null)
            {
                SkillButtonClick(arg);
            }
            switch (arg.obj.name)//使用Switch语句,可以单独对每个按钮进行相应的操作
            {
                case "ReturnBtn":
                    Debug.Log("返回上一场景");
                    //返回上一场景
                    //SceneControl.Instance.LoadScene(SceneName.SingleComputer);
                    break;
                case "ExitBtn":
                    //退出程序
                    OnExitGame();
                    break;
                default:
                    Debug.Log("未找到按钮");
                    break;
            }
    }

功能:获取此脚本所挂面板上所有按钮

注意点:提前隐藏的按钮无法获取!!!文章来源地址https://www.toymoban.com/news/detail-758086.html

到了这里,关于Unity给所有按钮绑定监听事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity 事件监听与广播(高度解耦合,观察者模式)

    使用观察者模式降低模块间的耦合性 通过C# 的 Dictionary 存放事件码和事件的委托 添加事件: 判断字典是否有该事件码,没有添加 判断当前委托类型与添加的事件码的类型是否一致 最后订阅该事件 移除事件: 先判断事件码是否存在 取消订阅 最后判断事件码是否为空,是

    2024年02月12日
    浏览(40)
  • 【Unity】 基础交互入门(按钮点击事件的三种方法)

    1、在资源面板创建C#脚本 2、创建点击事件需要执行的代码(这里以loadMain为例),新增一个叫OnStartButtonClick的Public方法。 可以选择生成或者调试,从VS更新代码到Unity。 3、场景中创建Button和empty(生成空的GameObject) 4、将代码挂在刚刚的GameObject上(这里将GameObject重命名为

    2024年02月09日
    浏览(44)
  • Unity 编辑器-创建模板脚本,并自动绑定属性,添加点击事件

    当使用框架开发时,Prefab挂载的很多脚本都有固定的格式。从Unity的基础模板创建cs文件,再修改到应有的模板,会浪费一些时间。尤其是有大量的不同界面时,每个都改一遍,浪费时间不说,还有可能遗漏或错改。写个脚本创建指定的模板代替C#基础模板。 注:当前脚本使用

    2024年02月13日
    浏览(58)
  • 【小技巧】Unity UGUI 中使用脚本激活按钮onclick事件

    在使用unity UGUI 按钮通常会直接在面板点击按钮的onclick增加事件并将需要按钮触发功能选择好,已经制作好按钮想使用脚本来控制点击的发生。 1.场景中Button是直接采用拖拽的方式实现打印功能 2.场景中Button1是直接调用脚本中Best()方法;    3.脚本代码: using System.Collec

    2023年04月09日
    浏览(47)
  • Unity实现UI按钮Button的按下、抬起、移出、移入事件

    实现思路, 1、重新写类,继承Button,在类中实现相关的事件响应。 2、将类挂载到Cavas下创建的Button按钮上,挂载之前需先移除Button默认的组件button。 3、编写代码给按钮添加事件,这一步与默认的 onClick.AddListener 用法没什么区别。 个人认为这种方法比较灵活,做个记录,方便

    2024年03月14日
    浏览(55)
  • Unity UGUI的EventTrigger (事件监听器)组件的介绍及使用

    EventTrigger是Unity UGUI中的一个组件,用于监听和响应UI元素的各种事件,例如点击、拖拽、进入、离开等。通过EventTrigger组件,我们可以方便地为UI元素添加各种交互行为。 EventTrigger组件通过监听UI元素上的事件,并在事件触发时执行相应的回调函数。每个UI元素可以添加多个

    2024年02月15日
    浏览(47)
  • Unity中,在按钮的处理事件中,显示UI(Panel)的一些问题

    问题来源(自己遇到的): (32条消息) Unity SetActive(True)滞后严重-游戏-CSDN问答 简单概括就是,点击按钮,开始处理某个事件,这个事件需要花费较长时间,我的想法是加入一个加载中界面,方便告知用户当前程序没有卡住。在完成事件后,提示加载完成。 首先,为按钮添加

    2024年02月03日
    浏览(45)
  • Unity3D Button 鼠标悬浮进入与鼠标悬浮退出按钮事件

    由于甲方验收未通过,项目需要改版,在修改界面时,想实现鼠标在一级菜单悬浮即可显示二级菜单的功能,主要如下图 注意,上图鼠标只是悬浮在场景漫游按钮上,并未点击左键或右键等 思路是让类继承IPointerEnterHandler IPointerExitHandler两个接口,然后实现其中的方法 代码如

    2024年02月16日
    浏览(45)
  • jQuery绑定监听事件记录

    1.click事件绑定 2.使用bin()函数绑定click bind()的用法:          其事件的绑定者是固定的,就是a,第一个参数是事件,第二个参数可选,是要传递给回调函数的event.data参数,第三个参数是回调函数。  3.使用on()函数绑定click on()的用法:          相比于bind(),除了事件的

    2023年04月24日
    浏览(72)
  • Unity中SteamVR2.0手柄按键绑定当SteamVR Input里的Open Binding UI按钮点击后打不开

    分享给第一次接触steamVR和新手的。也是给自己记一个笔记 最近在做SteamVR手柄按钮绑定时碰到一个问题,SteamVR Input里的Open Binding UI按钮点击后打不开本地的steamVR的绑定页面。之后我去查找资料一直都没解决方法,直到有一篇中提到了一句话在SteamVR里打开控制器设置。因此我

    2024年02月01日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包