动态绑定按钮事件

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

public class AddClickEvent : MonoBehaviour {

    void Start ()
    {
        var trigger = transform.gameObject.GetComponent<EventTrigger>();
        if (trigger == null)
            trigger = transform.gameObject.AddComponent<EventTrigger>();
        
        
        trigger.triggers = new List<EventTrigger.Entry>();
        
        // 定义需要绑定的事件类型。并设置回调函数
        EventTrigger.Entry entry = new EventTrigger.Entry();
        // 设置 事件类型
        entry.eventID = EventTriggerType.PointerClick;
        // 设置回调函数
        entry.callback = new EventTrigger.TriggerEvent();
    
        UnityAction<BaseEventDatacallbacks = new UnityAction<BaseEventData>(OnClickFuncOne);
        entry.callback.AddListener(callbacks);
        UnityAction<BaseEventDatacallback = new UnityAction<BaseEventData>(OnClickFuncTwo);
        entry.callback.AddListener(callback);

        // 添加事件触发记录到GameObject的事件触发组件
        trigger.triggers.Add(entry);
    }
    
    public void OnClickFuncOne(BaseEventData arg0)   
    {
        Debug.Log("Test Click----------fun 1");
    }
    
    public  void OnClickFuncTwo(BaseEventData arg0)    

    {  

        Debug.Log("Test Click----------->fun 2");

       
    }

}

-------------------------

使用ugui自带的Button组件

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

          public class BtnControl : MonoBehaviour {

              // Use this for initialization
              void Start ()
              {
                 var button = transform.gameObject.GetComponent<Button>();
                 if (button != null)
                 {
                     button.onClick.RemoveAllListeners();
                     button.onClick.AddListener(OnClickTest);
                 }
             }

             public void OnClickTest()
             {
                 Debug.Log("Test Click. This is Type 4");
             }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值