EditorGUILayout.HelpBox("Please note that enabling Improved Shortcut Support will cause actions with composite bindings to consume input and block any other actions which are enabled and sharing the same controls. "
+"Input consumption is performed in priority order, with the action containing the greatest number of bindings checked first. "
+"This works for shortcut keys, however in other cases this might not give the desired result, especially where there are actions with the exact same number of composite controls, in which case it is non-deterministic which action will be triggered. "
+"These conflicts may occur even between actions which belong to different Action Maps e.g. if using an UIInputModule with the Arrow Keys bound to the Navigate Action in the UI Action Map, this would interfere with other Action Maps using those keys. "
+"Since event consumption only occurs for enabled actions, you can resolve unexpected issues by ensuring that only those Actions or Action Maps that are relevant to your game's current context are enabled. Enabling or disabling actions as your game or application moves between different contexts. "
,MessageType.None);
if(EditorGUI.EndChangeCheck())
Apply();
}
}
privatestaticvoidShowPlatformSettings()
{
// Would be nice to get BuildTargetDiscovery.GetBuildTargetInfoList since that contains information about icons etc
m_UpdateModeContent=newGUIContent("Update Mode","When should the Input System be updated?");
m_CompensateForScreenOrientationContent=newGUIContent("Compensate Orientation","Whether sensor input on mobile devices should be transformed to be relative to the current device orientation.");
m_BackgroundBehaviorContent=newGUIContent("Background Behavior","If runInBackground is true (and in standalone *development* players and the editor), "
+"determines what happens to InputDevices and events when the application moves in and out of running in the foreground.\n\n"
+"'Reset And Disable Non-Background Devices' soft-resets and disables devices that cannot run in the background while the application does not have focus. Devices "
+"that can run in the background remain enabled and will keep receiving input.\n"
+"'Reset And Disable All Devices' soft-resets and disables *all* devices while the application does not have focus. No device will receive input while the application "
+"is running in the background.\n"
+"'Ignore Focus' leaves all devices untouched when application focus changes. While running in the background, all input that is received is processed as if "
+"running in the foreground.");
m_EditorInputBehaviorInPlayModeContent=newGUIContent("Play Mode Input Behavior","When in play mode, determines how focus of the Game View is handled with respect to input.\n\n"
+"'Pointers And Keyboards Respect Game View Focus' requires Game View focus only for pointers (mice, touch, etc.) and keyboards. Other devices will feed input to the game regardless "
+"of whether the Game View is focused or not. Note that this means that input on these devices is not visible in other EditorWindows.\n"
+"'All Devices Respect Game View Focus' requires Game View focus for all input devices. While focus is not on the Game View, all input on InputDevices will go to the editor and not "
+"the game.\n"
+"'All Device Input Always Goes To Game View' causes input to treat 'Background Behavior' exactly as in the player including devices potentially being disabled entirely while the Game View "
+"does not have focus. In this setting, no input from the Input System will be visible to EditorWindows.");
m_DefaultDeadzoneMinContent=newGUIContent("Default Deadzone Min","Default 'min' value for Stick Deadzone and Axis Deadzone processors.");
m_DefaultDeadzoneMaxContent=newGUIContent("Default Deadzone Max","Default 'max' value for Stick Deadzone and Axis Deadzone processors.");
m_DefaultButtonPressPointContent=newGUIContent("Default Button Press Point","The default press point used for Button controls as well as for various interactions. For button controls which have analog physical inputs, this configures how far they need to be held down to be considered 'pressed'.");
m_ButtonReleaseThresholdContent=newGUIContent("Button Release Threshold","Percent of press point at which a Button is considered released again. At 1, release points are identical to press points. At 0, a Button must be fully released before it can be pressed again.");
m_DefaultTapTimeContent=newGUIContent("Default Tap Time","Default duration to be used for Tap and MultiTap interactions. Also used by by Touch screen devices to distinguish taps from to new touches.");
m_DefaultSlowTapTimeContent=newGUIContent("Default Slow Tap Time","Default duration to be used for SlowTap interactions.");
m_DefaultHoldTimeContent=newGUIContent("Default Hold Time","Default duration to be used for Hold interactions.");
m_TapRadiusContent=newGUIContent("Tap Radius","Maximum distance between two finger taps on a touch screen device allowed for the system to consider this a tap of the same touch (as opposed to a new touch).");
m_MultiTapDelayTimeContent=newGUIContent("MultiTap Delay Time","Default delay to be allowed between taps for MultiTap interactions. Also used by by touch devices to count multi taps.");
m_ShortcutKeysConsumeInputsContent=newGUIContent("Enable Input Consumption","Actions are exclusively triggered and will consume/block other actions sharing the same input. E.g. when pressing the 'Shift+B' keys, the associated action would trigger but any action bound to just the 'B' key would be prevented from triggering at the same time.");
// Initialize ReorderableList for list of supported devices.
currentlyActiveAssetsPath=$"The currently active settings are stored in {currentlyActiveAssetsPath}. ";
EditorGUILayout.HelpBox($"Note that this asset does not contain the currently active settings for the Input System. {currentlyActiveAssetsPath??""}Click \"MakeActive\" below to make {target.name} the active one.",MessageType.Warning);