【UGUI】Unity4.6 UI按钮绑定事件(三)
来源:互联网 发布:数据恢复美团 编辑:程序博客网 时间:2024/06/09 19:13
我们会发现Unity4.6 UI新的UI系统中Button默认只提供了Onclick的调用方法,有时我们不仅仅想监听Button的Click事件,同时还需要监听MouseIn(鼠标进入事件)MouseOut(鼠标滑出事件).
这时我们就需要借助新的UI系统中EventTrigger脚本来实现,下面我们来学习一下,首先我们看一下如何通过EventTrigger来实现按钮点击Click事件.
第一步:通过Hierarchy面板创建button(详细参考Unity4.6 UI按钮绑定事件(一))
第二步:创建一个名为EventHandler的脚本,代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using
UnityEngine;
using
System.Collections;
using
UnityEngine.UI;
using
UnityEngine.EventSystems;
//需要EventTrigger脚本的支援
[RequireComponent(
typeof
(UnityEngine.EventSystems.EventTrigger))]
public
class
EventHandler : MonoBehaviour
{
// Use this for initialization
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.delegates.Add(entry);
}
private
void
Onclick(BaseEventData pointData)
{
Debug.Log(
"Button Clicked"
);
}
}
第三步,绑定EventHandler脚本到Button上
然后运行点击按钮就能看到运行的结果了。
如果我们想在Unity4.6 新的UI中实现MouseIn怎么办,很简单我们只需要修改下EventTriggerType.PointerClick事件类型改为EventTriggerType.PointerEnter,同理要监听MouseOut事件只需要修改为EventTriggerType.PointerExit
新的实现代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using
UnityEngine;
using
System.Collections;
using
UnityEngine.UI;
using
UnityEngine.EventSystems;
//需要EventTrigger脚本的支援
[RequireComponent(
typeof
(UnityEngine.EventSystems.EventTrigger))]
public
class
EventHandler : MonoBehaviour
{
// Use this for initialization
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(OnMouseEnter);
trigger.delegates.Add(entry);
}
private
void
OnMouseEnter(BaseEventData pointData)
{
Debug.Log(
"Button Enter"
);
}
}
阅读全文
0 0
- 【UGUI】Unity4.6 UI按钮绑定事件(三)
- 【UGUI】Unity4.6 UI按钮绑定事件(一)
- 【UGUI】Unity4.6 UI按钮绑定事件(二)
- 【UGUI】Unity4.6 UI按钮绑定事件(四)
- Unity4.6 UI按钮绑定事件(一)
- Unity4.6 UI按钮绑定事件(一)
- unity 按钮绑定事件(NGUI UGUI)
- Unity4.6新UI系统初探(uGUI)
- Unity4.6新UI系统初探(uGUI)
- 三、Unity4.6UI---------Panel(Image)
- (二十七)unity4.6学习Ugui中文文档-------Unity3D UI (uGUI)窗口扩展
- (三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout
- Unity UGUI 按钮绑定事件的方式
- (十五)unity4.6学习Ugui中文文档-------技巧-Designing UI for Multiple Resolutions
- (十七)unity4.6学习Ugui中文文档-------技巧-Creating a World Space UI
- (十八)unity4.6学习Ugui中文文档-------技巧-Creating UI elements from scripting
- (十六)unity4.6学习Ugui中文文档-------技巧-Making UI elements fit the size of their content
- unity4.6 Ugui 之 UGUIRectTransform
- Perl regex 快速入门
- 基于labview串口通信
- 计数系统架构实践一次搞定 | 架构师之路
- windows下与linux下安装redis及redis扩展
- 傅里叶级数与傅里叶变换
- 【UGUI】Unity4.6 UI按钮绑定事件(三)
- 线程的基本概念
- 17、18、19
- git通过diff文件,同步别人的修改
- 反射的技术
- Android5.0通过JobScheduler特殊场景下周期性执行后台任务
- DoTween -- 缓动动画
- java7 date
- 【UGUI】Unity4.6 UI按钮绑定事件(四)