Unity 新UI事件系统(EventSystem) Demo

新的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.");
    }
}
时间: 2024-12-06 03:44:39

Unity 新UI事件系统(EventSystem) Demo的相关文章

高仿网易4.0新UI框架的Demo

NewsFourApp:一个模仿网易4.0新UI框架的开源项目. 声明:如果有好的修改,非常欢迎fork提交分享哈 —————————————-华丽丽的分割线——————————————— beta 0.2 —————————————-华丽丽的分割线——————————————— beta 0.1 1.新的抽屉效果,修改于SliderViewController,不过里面已经不一样,毕竟是新的效果嘛(此部分还不算完全具备框架的特性,呵呵??) 2.首页滑动导航菜单的字体大小和颜色,随scroll

Android Material Design新UI控件使用大全 二

序言 上一篇中我们介绍了几个简单的新UI控件,相信很多小伙伴对Materil Design的视觉效果有了一定的了解,今天我们就继续介绍其他几个控件的玩儿法,让我们一探Materil Design的究竟,我们先来看一下我们今天要介绍的CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout及TabLayout, ok,我们接下来就逐一对这些控件进行解析,揭开他们神秘的面纱,来为我们服务,Let's Go. TabLayout 我们先来看官方的介绍

(十)Unity5.0新特性------新UI系统实战

原文 Unity New GUI Tutorial – Part 1 Unity New GUI Tutorial- Part 2 Unity New GUI Tutorial – Part 3 大家可以看看他的游戏源代码,然后了解一下新UI的使用.  介绍的很详细: 需要指出的 UI的动画都是使用 Animator\Animation组件实现,在实际的项目开发中,会使用Dotween\  Dftween这些补间动画插件来实现.   用代码通知,更加灵活. 但是使用 Animator\Anima

高仿网易4.0新UI框架

高仿网易4.0新UI框架 新的抽屉效果,修改于SliderViewController,首页滑动导航菜单随scrollView 的滑动变化效果. 下载地址:http://www.devstore.cn/code/info/500.html 运行截图:   热门源码下载: 高仿京东商城 Android快速开发不可或缺的11个工具类 Android快速开发框架LoonAndroid Android应用源码比较不错的新闻客户端 版权声明:本文为博主原创文章,未经博主允许不得转载.

【IOS源码】高仿网易4.0新UI框架

高仿网易4.0新UI框架 新的抽屉效果,修改于SliderViewController,首页滑动导航菜单随scrollView 的滑动变化效果. 下载地址: http://www.dwz.cn/yKQbV 效果图  

服务过美国总统竞选的非传统投票UI [解析及DEMO]

需求在这里  服务过美国总统竞选的非传统投票UI 需要实现这样的效果 =================正文开始===================================== 这些天一直在忙,抽空把代码完成了.和大家分享一下实现. 大家先在chorme上看一下DEMO吧,在线DEMO地址 http://codepen.io/arfeizhang/full/liIHa (DEMO只是为了说明原理,所以没做浏览器兼容,请大家在chrome上体验下) DEMO看着还可以吧,我们开始分析啦~

Unity4.6新UI系统初探(uGUI)

一.引言 Unity终于在即将到来的4.6版本内集成了所见即所得的UI解决方案(视频).事实上从近几个版本开始,Unity就在为这套系统做技术扩展,以保证最终能实现较理想的UI系统.本文试图通过初步的介绍和试用,让读者对这套系统有大体的了解,以便更进一步评估这套UI系统好不好用,适合用在什么项目.为了避免坑挖太深,更进一步的试用和评估我将在<用uGUI开发自定义Toggle Slider控件>中进行论述.为论述方便,下文将这套New UI System简称为uGUI,并且以X-UI指代现有第三

Unity AngryBots愤怒的机器人demo研究

做为Unity早期的经典demo,一直从3.5以后沿用到4.7.x版本.但其内部一些做法十分不合理.比如使用过多的根目录, 创建怪物和玩家不用SpawnPoint,AI,CheckPoint的代码实现过于随意,代码命名风格诡异等等.. 并且网上也有很多相关的学习文章,所以我精简了一下,将一些有用的部分学习并记录下来 1.主角武器部分 WeaponSlot为武器主要GameObject节点,里面有各种相关脚本. 其中瞄准线(LaserScope)通过LineRenderer实现: 其Shader额

Android Material Design新UI控件使用大全 一

序言 自从谷歌在2014年的IO大会上推出了Material Design新的设计规范后,安卓应用的整体美观程度提升了很大的一个层次, 安卓再也不是又黑又丑的界面,取而代之的是拥有丰富的颜色,美观的按钮,好的用户体验;但是刚开始的话这种设计规范只能在Android 5.0以上的手机上运行,导致开发者也只是自己去体验,在国内并没有大范围的推广,App的质量并不能大幅度的提升,但是作为改变世界的Google公司不久就推出了兼容库Android Material Design,这绝对是业界良心了,我们