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;
            }
        }
    }
示例#3
0
 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;
            }
        }
    }
示例#6
0
 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);
     }
 }
示例#7
0
 public static void ProcessRawInputEvent(ERawInputEventType eventType, object eventData)
 {
     Instance._ProcessRawInputEvent(eventType, eventData);
 }