public void DispatchRawInputEvent(ERawInputEventType eventType, object eventData) { ERawInputMetaType metaType = InputUtil.GetMetaTypeOfRawEvent(eventType); switch (metaType) { case ERawInputMetaType.Touch: _DispatchTouchRawInputEvent(eventType, eventData); break; case ERawInputMetaType.Axis: _DispatchAxisRawInputEvent(eventType, eventData); break; case ERawInputMetaType.Keyboard: _DispatchKeyboardRawInputEvent(eventType, eventData); break; case ERawInputMetaType.Mouse: _DispatchMouseRawInputEvent(eventType, eventData); break; default: break; } }
private void _DispatchMouseRawInputEvent(ERawInputEventType eventType, object eventData) { List <IRawInputEventHandler> handlerList = null; handlerTable.TryGetValue(ERawInputMetaType.Mouse, out handlerList); if (handlerList == null) { return; } for (int i = 0; i < handlerList.Count; ++i) { IMouseInputEventHandler handler = handlerList[i] as IMouseInputEventHandler; if (handler == null) { continue; } switch (eventType) { case ERawInputEventType.MouseButtonPressed: handler.HandleMouseButtonPressed(eventData); break; case ERawInputEventType.MouseButtonHolden: handler.HandleMouseButtonHolden(eventData); break; case ERawInputEventType.MouseButtonReleased: handler.HandleMouseButtonReleased(eventData); break; default: break; } } }
private void _ProcessRawInputEvent(ERawInputEventType eventType, object eventData) { if (rawEventDispatcher != null) { rawEventDispatcher.DispatchRawInputEvent(eventType, eventData); } }
private void _DispatchAxisRawInputEvent(ERawInputEventType eventType, object eventData) { List <IRawInputEventHandler> handlerList = null; handlerTable.TryGetValue(ERawInputMetaType.Axis, out handlerList); if (handlerList == null) { return; } for (int i = 0; i < handlerList.Count; ++i) { IAxisInputEventHandler handler = handlerList[i] as IAxisInputEventHandler; if (handler == null) { continue; } switch (eventType) { case ERawInputEventType.AxisMainHorizontal: handler.HandleAxisMainHorizontal(eventData); break; case ERawInputEventType.AxisMainVertical: handler.HandleAxisMainVertical(eventData); break; case ERawInputEventType.AxisMainVector: handler.HandleAxisMainVector(eventData); break; case ERawInputEventType.AxisSecondaryHorizontal: handler.HandleAxisSecondaryHorizontal(eventData); break; case ERawInputEventType.AxisSecondaryVertical: handler.HandleAxisSecondaryVertical(eventData); break; case ERawInputEventType.AxisSecondaryVector: handler.HandleAxisSecondaryVector(eventData); break; case ERawInputEventType.AxisButtonPressed: handler.HandleAxisButtonPressed(eventData); break; case ERawInputEventType.AxisButtonHolden: handler.HandleAxisButtonHolden(eventData); break; case ERawInputEventType.AxisButtonReleased: handler.HandleAxisButtonReleased(eventData); break; default: break; } } }
private void _DispatchTouchRawInputEvent(ERawInputEventType eventType, object eventData) { List <IRawInputEventHandler> handlerList = null; handlerTable.TryGetValue(ERawInputMetaType.Touch, out handlerList); if (handlerList == null) { return; } for (int i = 0; i < handlerList.Count; ++i) { ITouchInputEventHandler handler = handlerList[i] as ITouchInputEventHandler; if (handler == null) { continue; } switch (eventType) { case ERawInputEventType.TouchBegun: handler.HandleTouchBegun(eventData); break; case ERawInputEventType.TouchMoved: handler.HandleTouchMoved(eventData); break; case ERawInputEventType.TouchHolden: handler.HandleTouchHolden(eventData); break; case ERawInputEventType.TouchEnded: handler.HandleTouchEnded(eventData); break; case ERawInputEventType.TouchCanceled: handler.HandleTouchCanceled(eventData); break; default: break; } } }
public static ERawInputMetaType GetMetaTypeOfRawEvent(ERawInputEventType eventType) { if (eventType > ERawInputEventType.TOUCH_EVENT_BEGIN && eventType < ERawInputEventType.TOUCH_EVENT_END) { return(ERawInputMetaType.Touch); } else if (eventType > ERawInputEventType.AXIS_EVENT_BEGIN && eventType < ERawInputEventType.AXIS_EVENT_END) { return(ERawInputMetaType.Axis); } else if (eventType > ERawInputEventType.KEY_EVENT_BEGIN && eventType < ERawInputEventType.KEY_EVENT_END) { return(ERawInputMetaType.Keyboard); } else if (eventType > ERawInputEventType.MOUSE_EVENT_BEGIN && eventType < ERawInputEventType.MOUSE_EVENT_END) { return(ERawInputMetaType.Mouse); } else { return(ERawInputMetaType.Unknown); } }
public static void ProcessRawInputEvent(ERawInputEventType eventType, object eventData) { Instance._ProcessRawInputEvent(eventType, eventData); }