Unity3D之UI按键绑定事件(四)

来源:互联网 发布:天刀无缺染色数据 编辑:程序博客网 时间:2024/06/06 10:55

四、通过unity系统自带的事件系统实现

第一步:通过Hierarchy面板创建button

第二步:创建一个名为EventHandler的脚本,代码如下

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

[RequireComponent (typeof (UnityEngine .EventSystems.EventTrigger ))]
public class EventHandler : MonoBehaviour {

void Start () {
Button btn = this.GetComponent<Button > ();
UnityEngine.EventSystems.EventTrigger trigger=btn.gameObject.GetComponent<UnityEngine.EventSystems.EventTrigger> ();
EventTrigger.Entry entry = new EventTrigger.Entry ();
entry.eventID = EventTriggerType.PointerClick;
entry.callback = new EventTrigger.TriggerEvent ();
entry.callback.AddListener (OnClick);
trigger.triggers.Add (entry );
}//Start ()_end

void OnClick(BaseEventData pointData)
{
Debug.Log ("Button Clicked");
}//OnClick()_end

}

第三步,绑定EventHandler脚本到Button上


然后运行点击按钮就能看到运行的结果了。

如果我们想在UI中实现MouseIn怎么办,很简单我们只需要修改下EventTriggerType.PointerClick事件类型改为EventTriggerType.PointerEnter,同理要监听MouseOut事件只需要修改为EventTriggerType.PointerExit

新的实现代码如下

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

[RequireComponent (typeof (UnityEngine .EventSystems.EventTrigger ))]
public class EventHandler : MonoBehaviour {

void Start () {
Button btn = this.GetComponent<Button > ();
UnityEngine.EventSystems.EventTrigger trigger=btn.gameObject.GetComponent<UnityEngine.EventSystems.EventTrigger> ();

EventTrigger.Entry entry = new EventTrigger.Entry ();

//鼠标点击事件

//entry.eventID = EventTriggerType.PointerClick;

//鼠标滑出事件

/entry.eventID = EventTriggerType.PointerExit;

//鼠标进入事件


entry.eventID = EventTriggerType.PointerEnter;
entry.callback = new EventTrigger.TriggerEvent ();
entry.callback.AddListener (OnClick);
trigger.triggers.Add (entry );
}//Start ()_end

void OnClick(BaseEventData pointData)
{
Debug.Log ("Button Clicked");
}//OnClick()_end

}

第五种实现方式



原创粉丝点击