UGUI中Button和Toggle 添加动态事件

本文详细介绍了在Unity的UGUI中如何为Button和Toggle添加动态事件。对于Button,通过OnClick()选项可以添加点击事件,并可以选择不同类型的函数作为响应。Toggle的OnValueChange事件分为静态和动态两种,动态事件会自动封装isOn状态。同时,文章展示了如何利用Toggle实现TabPage效果,通过回调函数控制目标 GameObject 的显示和隐藏。

1、Button添加OnClick

  Button组件的下方有一个OnClick()选项,这里就是为是Button添加点击事件的地方。
  这里写图片描述
  单击其下的“+”按钮为其添加一个事件
  这里写图片描述
  将想要点击时触发的函数脚本所在的对象拖入对象框中,在Function列表中选择点击时的事件就为Button添加了点击事件。
  这里写图片描述
  在上图中可以看到函数列表还可以选择SendMessage(string)这种带一个参数的函数(btw,两个以上参数的不能被选择)。当选择时如下图
  这里写图片描述
  这就相当于调用TestClick的SendMessage("TestClick")
  同理也可以使用一些参数为Bool、GameObject或其他类型为参数的事件,设定好想要使用的参数之后,就可以在点击事件中调用了。(举一反三,法力无边。e.g. 当相应按钮事件时想知道按钮本身,就可以为事件添加GameObject参数将Button拖进去。)
  
  PS:推荐参照UGUI研究院之控件以及按钮的监听事件系统(五)写一个类似NGUI中EventTrigger的脚本,这样就可以通用性地为UI添加事件,即使只是一个Image并没有挂UI控件或者OnPointerEnter/Exit这类非默认回调事件。

2、Toggle添加OnValueChange

  为Toggle添加OnValueChange类似Button添加OnClick,但需要注意的是Function列表中下面的是静态方法,上面的是动态事件,是系统自动生成, 其bool型参数已被封装在其中了,此时我们不能象Button那样去选择其静态方法了,而要选择与之对应的动态事件才可正常运行了
  这里写图片描述
  下方红线描出的为静态方法,功能类似上面讲述的为Button添加带参数回调事件一样,我们可以设定一个bool参数,这个参数不随Toggle的isOn变化。(知道以后才发现原来bug大都是“哦,原来是这样,白浪费了好久”)
  而上方绿线标出的不带参数的OnValueChange则为系统自动生成的动态事件,Toggle的isOn已经被封装到参数之中。
  

实现TabPage

   如果想实现TabPage的效果,可以将Toggle勾选时需要显示的GameObject的gameObject.SetActive 函数设为回调函数。
   这里写图片描述
   这样当选中该Toggle时目标可见,取消Toggle时目标隐藏,轻松实现标签页形式的UI,感觉功能类似NGUI中的UIToggled Objects脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值