想要根据给出的若干个视频素材,动态控制生成相应的按键数量,由每个按键控制对应的视频切换播放。其中对按键循环添加监听事件时,遇到了一个问题,一开始想着由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);
}
}
文章来源:https://www.toymoban.com/news/detail-536817.html
到了这里,关于Unity 循环添加带参数的按键监听事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!