源码1:EventSystem
private List<BaseInputModule> m_SystemInputModules = new List<BaseInputModule>();
private BaseInputModule m_CurrentInputModule;
private static List<EventSystem> m_EventSystems = new List<EventSystem>();
EventSystem主要是管理输入组件
protected override void OnEnable()
{
base.OnEnable();
m_EventSystem = GetComponent<EventSystem>();
m_EventSystem.UpdateModules();
}
public void UpdateModules()
{
GetComponents(m_SystemInputModules);
var systemInputModulesCount = m_SystemInputModules.Count;
for (int i = systemInputModulesCount - 1; i >= 0; i--)
{
if (m_SystemInputModules[i] && m_SystemInputModules[i].IsActive())
continue;
m_SystemInputModules.RemoveAt(i);
}
}
每次OnEnable的时候会获取当前EventSystem组件和当前组件上的

本文详细解析了 Unity 中 EventSystem 的工作原理。EventSystem 主要负责管理输入组件,如 StandaloneInputModule,确保正确处理用户输入。在 OnEnable 时,EventSystem 获取并更新输入模块。在每帧 Update 中,它会检查并激活合适的输入模块来处理输入。此外,EventSystem 还处理射线投射,调用 RaycasterManager 进行场景交互。总的来说,EventSystem 是一个协调各个输入模块的管理器,而非直接处理逻辑,它确保了输入处理的顺畅进行。
最低0.47元/天 解锁文章
2613

被折叠的 条评论
为什么被折叠?



