Standalone Input Module
The module is designed to work as you would expect a controller / mouse input to work. Events for button presses, dragging, and similar are sent in response to input.
The module sends pointer events to components as a mouse / input device is moved around, and uses the configured in the scene Raycasters to calculate what element is currently pointed at by a given pointer device.
The module sends move events and submit / cancel events in response to Input tracked via the Input manager, this works for both keyboard and controller input. The tracked axis and keys can be configured in the module’s inspector.
Свойства
Свойство: |
Функция: |
Cancel Button |
Input manager name for the ‘cancel’ button. |
Force Module Active |
Force this module to be active. |
Horizontal Axis |
Input manager name for the horizontal axis button. |
Input Actions Per Second |
Number of keyboard / controller inputs allowed per second. |
Repeat Delay |
Delay in seconds before the input actions per second repeat rate takes effect. |
Submit Button |
Maximum number of input events handled per second. |
Vertical Axis |
Input manager name for the vertical axis. |
Детали
The module uses:
- Vertical / Horizontal axis for keyboard and controller navigation
- Submit / Cancel button for sending submit and cancel events
- Has a timeout between events to only allow a maximum number of events a second.
The flow for the module is as follows
- Send a Move event to the selected object if a valid axis from the input manager is entered
- Send a submit or cancel event to the selected object if a submit or cancel button is pressed
- Process Mouse input
- If it is a new press
- Send PointerEnter event (sent to every object up the hierarchy that can handle it)
- Send PointerPress event
- Cache the drag handler (first element in the hierarchy that can handle it)
- Send BeginDrag event to the drag handler
- Set the ‘Pressed’ object as Selected in the event system
- If this is a continuing press
- Process movment
- Send DragEvent to the cached drag handler
- Handle PointerEnter and PointerExit events if touch moves between objects
- If this is a release
- Send PointerUp event to the object that received the PointerPress
- If the current hover object is the same as the PointerPress object send a PointerClick event
- Send a Drop event if there was a drag handler cached
- Send a EndDrag event to teh cached drag handler
- Process scroll wheel events