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

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


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().color = new Color(1, 1, 1, 0.5f);//设置button文字颜色
            btns.GetComponentInChildren().text = videoclipsname[i];//设置button显示的文字
            btns.GetComponent

你可能感兴趣的:(unity)