[Draft] Modified OnScreenControl to support a customisable update mode #1792
+453
−37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Added a new "update mode" property on OnScreenControl.
Updated the OnScreenControl example in /samples.
Changes made
Feature addition to OnScreenControl:
OnScreenControlUpdateMode
which allows the user to specify whether theOnScreenControl
should output its input data by queuing input events to the system (OnScreenControlUpdateMode.Queue
, default) or whether theOnScreenControl
should output its input data by changing the underlying control state viaInputState.Change(...)
directly (OnScreenControlUpdateMode.StateChange
, new optional mode).Updated the OnScreenControl example:
Removed previous FIXME relating to this.
Notes
Note that PR still contains debug logging in
OnScreenStick
andOnScreenButton
.Note that updating via
InputState.Change(...)
avoids delaying generated until the next frame and effectively reduces latency ofOnScreenControl
by one frame or equivalently1 / FrameRate
seconds. However, this cannot be the default value since it would break backwards compability. However,OnScreenControlUpdateMode.StateChange
have been highlighted as the recommended setting.This PR needs significant testing and QA before considered to be merged since potential side-effects or detection of improper control layouts for this update pattern are currently not clear.
Checklist
Before review:
Changed
,Fixed
,Added
sections.([case %number%](https://issuetracker.unity3d.com/issues/...))
.Area_CanDoX
,Area_CanDoX_EvenIfYIsTheCase
,Area_WhenIDoX_AndYHappens_ThisIsTheResult
.During merge:
NEW: ___
.FIX: ___
.DOCS: ___
.CHANGE: ___
.RELEASE: 1.1.0-preview.3
.