找回密码
 注册帐号

扫一扫,访问微社区

脚本 请教一个按钮关联带参数方法的问题

8
回复
249
查看
[ 复制链接 ]
6蛮牛粉丝
1059/1500
排名
5481
昨日变化

17

主题

211

帖子

1059

积分

Rank: 6Rank: 6Rank: 6

UID
236132
好友
2
蛮牛币
2585
威望
0
注册时间
2017-8-6
在线时间
571 小时
最后登录
2019-10-22
2019-9-26 09:59:13 显示全部楼层 阅读模式
10蛮牛币
我需要写一个方法 方法的两个参数是 按钮的名字和关联的方法  但是这么写的话调用的时候方法没办法传参,请问这应该怎么写?

QQ截图20190926095729.png
回复

使用道具 举报

4四处流浪
471/500
排名
9581
昨日变化

2

主题

86

帖子

471

积分

Rank: 4

UID
155434
好友
0
蛮牛币
95
威望
0
注册时间
2016-7-6
在线时间
265 小时
最后登录
2019-9-30
2019-9-26 10:55:10 显示全部楼层
调用这个方法的时候传入个委托事件就好了啊
回复

使用道具 举报

6蛮牛粉丝
1059/1500
排名
5481
昨日变化

17

主题

211

帖子

1059

积分

Rank: 6Rank: 6Rank: 6

UID
236132
好友
2
蛮牛币
2585
威望
0
注册时间
2017-8-6
在线时间
571 小时
最后登录
2019-10-22
楼主 2019-9-26 10:57:29 显示全部楼层
Hi想念 发表于 2019-9-26 10:55
调用这个方法的时候传入个委托事件就好了啊

这样写没办法传递参数
回复

使用道具 举报

7日久生情
2430/5000
排名
665
昨日变化

1

主题

237

帖子

2430

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
163577
好友
2
蛮牛币
2029
威望
0
注册时间
2016-8-22
在线时间
866 小时
最后登录
2019-10-15
2019-9-26 15:52:35 显示全部楼层
getcomponent<Button>().onclick.addlistener(()=>
{
需要添加的方法(参数,参数。。。);
})
回复

使用道具 举报

5熟悉之中
824/1000
排名
4618
昨日变化

22

主题

109

帖子

824

积分

Rank: 5Rank: 5

UID
140540
好友
0
蛮牛币
1229
威望
0
注册时间
2016-3-15
在线时间
375 小时
最后登录
2019-10-22
2019-9-26 15:57:50 显示全部楼层
[C#] 纯文本查看 复制代码
tmpBut.onClick.AddListener(()=>{TmpButEvent(param,param1,param2);});

这样?
回复

使用道具 举报

6蛮牛粉丝
1059/1500
排名
5481
昨日变化

17

主题

211

帖子

1059

积分

Rank: 6Rank: 6Rank: 6

UID
236132
好友
2
蛮牛币
2585
威望
0
注册时间
2017-8-6
在线时间
571 小时
最后登录
2019-10-22
楼主 2019-9-26 16:03:57 显示全部楼层
本帖最后由 LLzj 于 2019-9-26 16:06 编辑
幸运石 发表于 2019-9-26 15:57
[mw_shl_code=csharp,true]tmpBut.onClick.AddListener(()=>{TmpButEvent(param,param1,param2);});[/mw_sh ...

public void AddButtonLister<T>(string butName, UnityAction<string> action, string strings)
    {
        Button tmpBut = transform.Find(butName).GetComponent<Button>();

        if (tmpBut != null)
        {
            print(tmpBut.name + "事件添加成功");
            tmpBut.onClick.AddListener(delegate () { action(strings); });
        }
    }  这样就行了 这样写比较方便 Awake直接调用这个方法就能直接把按钮和事件关联了 ,需要什么参数直接写重载就行了
回复

使用道具 举报

5熟悉之中
824/1000
排名
4618
昨日变化

22

主题

109

帖子

824

积分

Rank: 5Rank: 5

UID
140540
好友
0
蛮牛币
1229
威望
0
注册时间
2016-3-15
在线时间
375 小时
最后登录
2019-10-22
2019-9-26 16:13:08 显示全部楼层
LLzj 发表于 2019-9-26 16:03
public void AddButtonLister(string butName, UnityAction action, string strings)
    {
        Butt ...

tmpBut.onClick.AddListener(()=>{TmpButEvent(action(strings));});
回复

使用道具 举报

4四处流浪
459/500
排名
14231
昨日变化

0

主题

223

帖子

459

积分

Rank: 4

UID
209003
好友
0
蛮牛币
538
威望
0
注册时间
2017-2-28
在线时间
178 小时
最后登录
2019-10-22
2019-10-12 10:07:49 显示全部楼层
用匿名委托
AddButtonLister(stirng name,()=>action(string str))
回复

使用道具 举报

4四处流浪
459/500
排名
14231
昨日变化

0

主题

223

帖子

459

积分

Rank: 4

UID
209003
好友
0
蛮牛币
538
威望
0
注册时间
2017-2-28
在线时间
178 小时
最后登录
2019-10-22
2019-10-12 10:09:08 显示全部楼层
Lavender丶Cc 发表于 2019-10-12 10:07
用匿名委托
AddButtonLister(stirng name,()=>action(string str))

写错了,不过大致意思一样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则