Unity编辑器UGUI Button点击事件加监听并传参

using UnityEditor.Events;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;

public class NewBehaviourScript : MonoBehaviour
{
    
    

    /// <summary>
    /// 为所有子物体的 按钮组件的点击事件加上监听方法 并传参
    /// 传参的依据就是 自身相对于父物体的索引值
    /// </summary>
    [ContextMenu("子按钮加监听,并传参")]
    private void ButtonsAddListener()
    {
    
    
        UnityAction<int> unityAction = new UnityAction<int>(PrintInt);
        for (int i = 0; i < transform.childCount; i++)
        {
    
    
            UnityEventTools.AddIntPersistentListener
                (transform.GetChild(i).GetComponent<Button>().onClick, unityAction, i);
        }

    }

    /// <summary>
    /// 测试方法:打印参数值
    /// </summary>
    /// <param name="i"></param>
    public void PrintInt(int i)
    {
    
    
        print(i);
    }


}

挂载按钮父物体上,右键脚本使用
测试效果

猜你喜欢

转载自blog.csdn.net/weixin_44003637/article/details/114944180