UNITY_UGUI
Posted fudgebear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UNITY_UGUI相关的知识,希望对你有一定的参考价值。
UGUI
1. 事件系统-EventSystem
处理与管理点击、键盘输入、触摸等事件
EventSystem源码声明了
private List<BaseInputModule> m_SystemInputModules = new List<BaseInputModule>(); private BaseInputModule m_CurrentInputModule;
BaseInputModule是抽象类
PointerInputModule继承自BaseInputModule,也是抽象类
StandaloneInputModule继承自PointerInputModule,面向PC/Mac/Linux standalone平台的输入模块
TouchInputModule继承自PointerInputModule,面向android/ios等移动平台的输入模块
EventSystem在每一帧都会处理这些输入模块 -- 调用TickModules(),更新每一个InputModule
遍历m_SystemInputModules,判断这些module是否支持当前平台且可用
1. 若有符合条件的module,便赋值给m_CurrentInputModule并break;
2. 若没有符合条件的module,便选取第一个支持当前平台的module作为m_CurrentInputModule
若m_CurrentInputModule的值发生变化,且m_CurrentInputModule!=null,便调用m_CurrentInputModule.Process()
该方法会将各种输入事件传递给EventSystem当前选中的GameObject(m_CurrentSelected)
m_CurrentSelected大部分情况是Selectable组件
(在设置m_CurrentSelected时,会通过ExecuteEvents对之前选中的对象执行一个被取消事件,
对新选中的对象执行一个被选中事件(OnSelect()/ OnDeselect()))
以上是关于UNITY_UGUI的主要内容,如果未能解决你的问题,请参考以下文章