[Unity][FairyGUI]GButton点击传递参数

这是错误的写法

...
        btn.onClick.Add(btnClick);
        //btn.onClick.Set(btnClick);
...
    private void btnClick(EventContext context)
    {
        Debug.Log("btnClick  name:id:" + context.type+ "/data:" + context.data+ "/sender:" + context.sender);//没有报错显示结果//btnClick  name:id:onClick/data:FairyGUI.InputEvent/sender:FairyGUI.GButton

        //GButton item = (GButton)context.data;
        //Debug.Log("btnClick  item:" + item.id);//TargetException: Object of type 'FairyGUI.InputEvent' doesn't match target type 'FairyGUI.GO
        //context.sender.GObject
        //GObject item = (GObject)context as GObject;//报错
        //Debug.Log("btnClick  item1:" + item.id);
    }
...

...
btn.onClick.Add(() => {
            click(btn);
        });
...
    private void click(GButton gb)
    {
        Debug.Log("click  item1:" + gb.id+"/name:"+gb.name);//click  item1:n39_q70z/name:n39
    }
...

相关资料1 里面也用到EventContext 传递参数。

相关资料:

1.[Unity][FairyGUI]GList设置默认遍历事件

2.

参考资料:

1.Unity按钮事件传递参数

2.FairyGui中按钮单击和双击点击传递数据

3.

你可能感兴趣的:(FairyGUI,Unity)