2-5 事件系统(Event System)

重点

  • 1.对于用户操作的事件,是由事件系统控制的
  • 2.事件系统的动作是通过输入模块定义的
  • 3.对于那个对象发生事件,由光线投射判定。


2-3-1 事件系统概要
事件系统通过场景中的“Event System”对象所附加的组件发挥功能

Standalone Input Module(独立输入模块)组件是具有通过鼠标,键盘和游戏控制杆输入功能
Touch Input Module(触摸输入模块)组件是具有智能手机和平板电脑等移动设备上触碰功能

现在2018.3.9f1版本中,Touch Input Module已经在Standalone Input Module模块中了,不推荐挂载
“EcentSystem”对象通常是在创建画布的同时创建的,此外还能通过GameObject菜单选择“UI”>"Event System"来创建
通常附加事件系统的游戏组件,一个场景只能放置一个,虽然也可以强制添加,但是在Play模式下会显示警告
Event System(事件系统)基本具有以下作用
管理已选游戏对象
管理活动的输入模块
更新所有输入模块
通过光线投射判断对象
而且,EventSystem类以及Standalone Input Module类,Touch Input Module类等输入模块的类,TouchInputModule类等输入模块的类是在UnityEngine.EventSystems命名空间定义的。



Event System组件的动作
该组件用于处理场景中的事件。他与各输入模块联动执行动作,主要向保持状态(State)或可特定覆盖组件传递信息



Event System组件按照以下流程进行

1.如同附加Event System组件一样附加,在游戏对象也附加了输入模块,动作开始时,找到此模块,然后添加到内部列表中,
2.每当调用Update方法时,所附加的各个输入模块的UpdataModule方法就会被调用。而各个输入模块,通过UpdataModule方法可以改变内部状态。
3.在调用所有输入模块的UpdataModule方法后,调用活动的输入模块的Process方法,要实现独立调用时,则编写在此去



 

Event System组件的属性

First Selected
设置最初的对象
Send Navigation Events
勾选时,发送当前操作键盘或游戏控制杆时发生的导航事件(OnMove事件,OnSubmit事件,OnCancel事件)
Drag Threshold
以像素单位来设置判断拖拽已经开始的移动距离



输入模块
输入模块(Input Module)是定义要让事件系统执行什么动作的组件,被用于接收输入,管理事件状态,向场景中的对象发送事件等,
输入模块只有一个会处于活跃状态。这个根据操作系统的环境来决定



Standalone Input Module组件
此组件是在编辑器和电脑等独立环境中,通过鼠标,键盘或游戏控制杆来处理输入的,它用来追踪鼠标光标,或者键盘,游戏控制杆的输入,点击

Horizontal Axis
指定与横轴按钮相对应的输入管理器(Input Manager)的设置
可通过“Edit”菜单中的“Project Settings” 中的“Input”打开,在里面可以定义该项目中所有输入以及输入相对于的游戏中的动作。
Vertical Axis
同上,但是指定的是纵轴相对应的输入管理器设置
Submit Button
指定确认(Submit)按钮相对应的输入管理器的设置
Cancel Button
指定取消(Cancel)按钮相对应的输入管理器的设置
Input Actions Per Second
设置每秒可以接受多少次键盘或者游戏控制杆的输入动作
Repeat Delay
为了避免键盘或者游戏杆在无意状态下练续输入,设置连续输入起止之间延迟的时间。
Force Module Active

原文地址:https://www.cnblogs.com/bimg1999/p/12594638.html

时间: 2024-11-24 15:09:38

2-5 事件系统(Event System)的相关文章

Building Robust and Flexible Event System in Unity3D

Building Robust and Flexible Event System in Unity3D 1. Prerequisites 1.1 Observer Pattern According to Wikipedia, the observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called ob

UICamera(NGUI Event system)原理

看了UICamera的源码就显而易见了: UICamera « on: November 21, 2013, 12:21:48 AM » Overview UICamera is a somewhat poorly named component. In fact, its name is kept only for backwards compatibility purposes. What the UICamera script actually does is sends out NGUI

Qt 状态机框架学习(没学会)

Qt状态机框架是基于状态图XML(SCXML) 实现的.从Qt4.6开始,它已经是QtCore模块的一部分.尽管它本身是蛮复杂的一套东西,但经过和Qt的事件系统(event system).信号槽(signals and slots)及属性系统(property system)深度整合,它使用门槛并不高. 一些概念 Qt的手册中The State Machine Framework一文对Qt状态机框架及使用进行了介绍,可是还是发现看看基本的概念(详见  SCXML   的  第三部分 )更有帮助

如何使用OpenCart 2.x Event事件系统

如何使用OpenCart 2.x Event事件系统 OpenCart 2.x 包含很多新特性,其中之一就是专为开发者提供的事件系统,Event System.它允许你在不修改原有系统代码的基础上( 当然也不使用vQmod或者是2.x版本新增的OCMOD修改代码,这样可以规避代码冲突的风险. ),规定某些特定操作执行的时候,触发特定的动作.比如说:在用户下单或是注册的时候,你可以使用事件系统向后台发送通知信息. 使用原理: 使用事件系统需要两个步骤: 注册事件处理器. 接入事件处理器. 在控制器

SaltStack的事件系统

SaltStack的event system即事件系统发送事件 event system包括两个主要的组件: event socket用来发布事件 event 库用来监听事件并发送事件 参考文章: http://docs.saltstack.com/en/2014.7/topics/event/index.html

【四】注入框架RoboGuice使用:(Your First System Service Injection)

上一篇我们简单的介绍了一下RoboGuice的使用([三]注入框架RoboGuice使用:(Your First Resource Injection)),今天我们来看下系统服务的使用注解的方法: 为了在Activity中系统服务使用注解,必须实现以下两个步骤: ①:创建继承RoboActivity的Activity ②:使用 @Inject来进行注解系统服务 下面我们来实现一个例子,和上一篇文章例子差不多,我们需要进行实现系统服务,我们同样创建一个继承RoboActivity的Activity

如何激活已过试用期的System Center 2012 Operations Manager

开始在测试System Center 2012 Operations Manager(以下简称为SCOM)一直使用的是评估版本,一直忘了输入密钥,周六的时候突然收到评估过期通知邮件,同时OpsMgr控制台无法连接.本文将引导您完成如何激活它的步骤. 如果尝试打开OpsMgr控制台,报警及报错如下: Log信息如下: 日期: 2016/12/26 9:07:22 应用程序: Operations Manager 应用程序版本: 7.1.10226.0 严重性: 错误 消息: 未能连接到服务器"BJ

SAP Sybase IQ EVENT Each time a scheduled event handler is completed

16.0 SP04 > Reference: Statements and Options > SQL Statements Defines an event and its associated handler for automating predefined actions. Also defines scheduled actions. Quick Links: Go to Parameters Go to Examples Go to Usage Go to Standards Go

【saltstack学习笔记之五】salt的event接口

event是一个本地的ZeroMQ PUB Interface,event是一个开放的系统,用于发送信息通知salt或其他的操作系统.每个event都有一个标签.事件标签允许快速制定过滤事件.除了标签之外,每个事件都有一个数据结构.这个数据结构是一个dict类型,其中包含关于事件的信息. 在master上直接将返回结果写入mysql    1.event接口测试        测试脚本salt-event.py内容如下:           import salt.utils.event