forked from BilalY/Rasagar
50 lines
2.9 KiB
Markdown
50 lines
2.9 KiB
Markdown
|
# 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 [Graphics Raycaster](script-GraphicRaycaster.md) and [Physics Raycaster](script-PhysicsRaycaster.md) to calculate which element is currently pointed at by a given pointer device. You can configure these raycasters to detect or ignore parts of your Scene, to suit your requirements.
|
||
|
|
||
|
The module sends move events and submit / cancel events in response to Input tracked via the [Input](https://docs.unity3d.com/Manual/class-InputManager.html) window. This works for both keyboard and controller input. The tracked axis and keys can be configured in the module's inspector.
|
||
|
|
||
|
|
||
|
## Properties
|
||
|
|
||
|
|**_Property:_** |**_Function:_** |
|
||
|
|:---|:---|
|
||
|
|__Horizontal Axis__ | Type the desired manager name for the horizontal axis button. |
|
||
|
|__Vertical Axis__ | Type the desired manager name for the vertical axis. |
|
||
|
|__Submit Button__ | Type the desired manager name for the Submit button. |
|
||
|
|__Cancel Button__ | Type the desired manager name for the Cancel 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. |
|
||
|
|__Force Module Active__ | Enable this property to force this __Standalone Input Module__ to be active. |
|
||
|
|
||
|
## Details
|
||
|
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 window 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 the cached drag handler
|
||
|
- Process scroll wheel events
|