UGUI Button和Toogle动态添加事件

如果你想动态创建Button和Toogle 等等一系列控件,需要动态添加事件的如下.

拿button和Toogle抛砖引玉O(∩_∩)O~

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Events;

public class Test3 : MonoBehaviour {

    public Button button;
    public Toggle toggle;

    void Awake()
    {

        //第一种
        button.onClick.AddListener(MyOnClick);

        //第二种
        button.onClick.AddListener(new UnityAction(MyOnClick));

        //第三种,可以传递参数的
        button.onClick.AddListener(delegate { MyOnClick(new GameObject()); });

        //Toggle第一种
        toggle.onValueChanged.AddListener(MyOnValue);
        //Toggle第二种
        toggle.onValueChanged.AddListener(new UnityAction<bool>(MyOnValue));

    }

    public void MyOnClick()
    {
        Debug.Log("单击");
    }

    public void MyOnClick(GameObject meg)
    {
        Debug.Log("单击");
    }

    public void MyOnValue(bool isOn)
    {
        if (isOn)
        {
            Debug.Log("被选中");
        }
        else
        {
            Debug.Log("取消选中");
        }
    }

}
时间: 2024-10-03 10:18:56

UGUI Button和Toogle动态添加事件的相关文章

js动态添加事件-事件委托

作者:白狼 出处:http://www.manks.top/javascript-dynamic-event.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 其所谓的动态添加事件实质就是指js中的事件委托. 我们知道在js中,事件处理只能绑定在当前被选中的元素上,换句话也就是说,事件处理只能绑定在当前文档已经存在的元素上!但是,往往小伙伴们都会遇到一个问题就是,我的元素是后来动态添加到页面的,而我又想给该元素绑定

Unity动画系统Animator动态添加事件

之前一直都是手动给模型动画添加事件,最近在做项目的时候,感觉很麻烦,而且经常要改,就变的更麻烦了.于是就在网上查了下,事件是可以在运行时自动添加的,在此记录一下,免得自己以后忘了. 现在有一个模型和动画控制器如下: 很简单,没有什么骚操作.并在模型上挂了一个 Test 脚本,我在 Test 脚本里,分别在动画的开始,结束,和播放一半的时候添加事件.运行打印如下: 截图没办法很好的表示动态效果,大家可以自己尝试一下,代码如下,逻辑很简单,就不多说了: 1 using UnityEngine; 2

js中关于动态添加事件,不能使用循环变量的问题

在编写事件的时候,我们难免会遇到以下这种情况:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <ul> <li>内容一</li> <li>内容二</li> <li&g

给animator动态添加事件

using UnityEngine; using System.Collections; public class setAnimationEvent : MonoBehaviour { public RuntimeAnimatorController m_runtimeAnimatorController; // Use this for initialization void Start () { m_runtimeAnimatorController = this.GetComponent

android studio 菜鸟实战项目 之 点击事件以及动态添加

原始界面:               登陆失败:             登陆成功:              动态添加控件: 布局如下:(特别声明最后又一个空linearlayout,这是为了后面的动态添加事件) <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

动态添加Ugui组件

动态添加Ugui组件 动态添加是指:在场景中有一个canvas,使用代码,动态添加一个没有canvas的prefab,但是这个prefab需要挂载到canvas下,就是canvans下的ugui组件 如果anchors 的min和max 不是 (0.5, 0.5)的时候就会有问题,添加的位置是不对的, 具体什么原因不是很懂, 与锚点有关系 一下代码就可以避免这种情况 1 GameObject obj = Resources.Load<GameObject>("btn_info_tes

Unity3D Animator控制参数和添加事件

Animator控制参数和添加事件 using UnityEngine; using System.Collections; public class AniControl : MonoBehaviour { public bool IsRolling = false; public bool IsDead = false; public bool IsJump = false; public float Direction = 0.5f; public Animator Anitor; pub

dom添加事件总结

碰到几个问题,总结一下: 什么是事件冒泡 被点击后,由最具体的事件接收,逐级向上传至最不具体的那个节点 事件流 描述页面接收事件的顺序 分为html事件,DOM0级事件,DOM2级事件 DOM 0级与html事件需要加上on,DOM2在非ie下不需要,因为已经有了listen这个监听的东西,在ie下DOM2的attachEvent和detatchEvent需要加上on 注意: Internet Explorer 8 及更早IE版本不支持 addEventListener() 方法,,Opera

UGUI 代码 动态添加 Event Trigger 的事件

Additionally, if you need more than just the events provided by default, I'd suggest instead attaching a EventTrigger to your game object. This gives us access to the BaseEventData object returned from the event, telling us stuff like the object that