Unity 循环添加带参数的按键监听事件

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

想要根据给出的若干个视频素材,动态控制生成相应的按键数量,由每个按键控制对应的视频切换播放。其中对按键循环添加监听事件时,遇到了一个问题,一开始想着由for循环中的i为按键编号,通过给监听事件传参数i,来确定点击的是哪一个按键,但是由于i是int型的,传进监听事件时,总是会传遍历到最后一个数时加1的参数,例如共有5个按键,最后一个按键索引i是4,但是传入监听函数时是5,不管点击哪一个按键,都会传入5,在此问题上浪费了好多时间,最后解决方法是将int型的i转换为string型的传进去,然后在监听事件的函数中再将string型的参数转为int型使用。文章来源地址https://www.toymoban.com/news/detail-536817.html


using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class CircleAddAddListener: MonoBehaviour
{
        public Button buttonprefab;//按键的预制体
        for (int i = 1; i < videoclipsname.Count; i++)
        {
            Button btns = Button.Instantiate(buttonprefab, buttonFather.transform);//在父亲节点下创建button节点
            btns.GetComponentInChildren<TMP_Text>().color = new Color(1, 1, 1, 0.5f);//设置button文字颜色
            btns.GetComponentInChildren<TMP_Text>().text = videoclipsname[i];//设置button显示的文字
            btns.GetComponent<Button>().onClick.AddListener(() => buttonChoose(i.ToString()));
            buttons.Add(btns);
        }
}

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

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

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

相关文章

  • Unity XR 设置VR设备手柄按键按下事件

    ①打开XRI Default Input Action 面板。 ②设置左手柄上的按键就点击Action Maps 列表下的 XRI LeftHand Interaction选项,设置右手柄上的按键就点击XRI RightHand Interaction。 ③以设置右手柄上的按键为例,我们将设置右手柄上的 A键、B键、摇杆按下键、摇杆上下左右推动事件、R2键(扳机键

    2024年01月19日
    浏览(17)
  • Unity 事件监听与广播(高度解耦合,观察者模式)

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

    2024年02月12日
    浏览(17)
  • unity AddListener监听多个参数方法

    toggle_titleShow.onValueChanged.AddListener(delegate { SetTitleShow(toggle_titleShow.isOn, 0); }); 在有for循环时,在使用delegate或者lambda表达式,需要使用临时变量 for (int i = 1; i m_ListData.Count; ++i) { for (int j = 1; j m_ListData[i].transform.childCount; j++) { int temp1 = i; int temp2 = j; m_ListData[i].transform.GetChild(j).GetC

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

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

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

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

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

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

    2023年04月09日
    浏览(26)
  • Unity UGUI的EventTrigger (事件监听器)组件的介绍及使用

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

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

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

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

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

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

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

    2024年02月01日
    浏览(26)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包