Unity 新UI事件系统(EventSystem) Demo

Unity 新UI事件系统(EventSystem) Demo

时间: 2015-03-06 16:59:57      阅读: 4986      评论: 0      收藏: 0       [点我收藏+]

标签:des   class   style   代码   com   log   si   it   方法   

新的UI系统消息传递被全新设计,该系统用MonoBehaviour 来实现自定义的接口,以便可以接受来自消息系统的回调。当一个对象被消息的执行指定,那么这个对象的所有实现了自定义接口的脚本将被通知,指定的方法将被执行。

 

1.定义一个接口ICustomMessageTarget继承IEventSystemHandler, 这样当发送此类型消息时,实现此接口的脚本所在的对象将会被通知。

using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections;

public interface ICustomMessageTarget : IEventSystemHandler
{
    void Message1();
    void Message2();
}

2.测试脚本CustomMessageTarget实现ICustomMessageTarget,加到一个对象上。

using UnityEngine;
using System.Collections;

public class CustomMessageTarget : MonoBehaviour , ICustomMessageTarget
{

    public void Message1()
    {
        Debug.Log("Message1 received.");
    }
    public void Message2()
    {
        Debug.Log("Message2 received.");
    }
}

这样当执行下面代码时事件将被触发

 ExecuteEvents.Execute<ICustomMessageTarget>(go, null, (x, y) => x.Message1());

 

同时EventSystem还提供了大量的事件, 只需要在脚本中实现这些接口就可以触发相应的方法

  • IPointerEnterHandler - OnPointerEnter - Called when a pointer enters the object
  • IPointerExitHandler - OnPointerExit - Called when a pointer exits the object
  • IPointerDownHandler - OnPointerDown - Called when a pointer is pressed on the object
  • IPointerUpHandler - OnPointerUp - Called when a pointer is released (called on the original the pressed object)
  • IPointerClickHandler - OnPointerClick - Called when a pointer is pressed and released on the same object
  • IInitializePotentialDragHandler - OnInitializePotentialDrag - Called when a drag target is found, can be used to initialise values
  • IBeginDragHandler - OnBeginDrag - Called on the drag object when dragging is about to begin
  • IDragHandler - OnDrag - Called on the drag object when a drag is happening
  • IEndDragHandler - OnEndDrag - Called on the drag object when a drag finishes
  • IDropHandler - OnDrop - Called on the object where a drag finishes
  • IScrollHandler - OnScroll - Called when a mouse wheel scrolls
  • IUpdateSelectedHandler - OnUpdateSelected - Called on the selected object each tick
  • ISelectHandler - OnSelect - Called when the object becomes the selected object
  • IDeselectHandler - OnDeselect - Called on the selected object becomes deselected
  • IMoveHandler - OnMove - Called when a move event occurs (left, right, up, down, ect)
  • ISubmitHandler - OnSubmit - Called when the submit button is pressed
  • ICancelHandler - OnCancel - Called when the cancel button is pressed

例子:

using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;

public class TestPointerEnterEvent : MonoBehaviour , IPointerEnterHandler , IPointerClickHandler
{

    public void OnPointerEnter(PointerEventData data)
    {
        Debug.Log("Pointer enter.");
    }

    public void OnPointerClick(PointerEventData data)
    {
        Debug.Log("Pointer click.");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值