Class ScyllaInputConfiguration
ScriptableObject configuration asset for the Scylla Input module. Create one instance
via Assets → Create → Scylla → Input → Input Configuration and assign it to the
ScyllaInput component in the Inspector.
Inheritance
Object
ScriptableObject
ScyllaConfiguration
ScyllaInputConfiguration
Inherited Members
ScyllaConfiguration.CONFIG_FOLDER
ScyllaConfiguration.LABEL_CONFIG_FILES
ScyllaConfiguration.LABEL_CONFIG_FILE
ScyllaConfiguration.LABEL_GLOBAL
ScyllaConfiguration.LABEL_CORE
ScyllaConfiguration.LABEL_CONFIG_FILES_IN_DBG
ScyllaConfiguration.LABEL_CONFIG_FILES_IN_PRD
ScyllaConfiguration.LABEL_CONFIG_FILE_IN_DBG
ScyllaConfiguration.LABEL_CONFIG_FILE_IN_PRD
ScyllaConfiguration.LABEL_VALIDATION
ScyllaConfiguration.LABEL_ERROR
ScyllaConfiguration.LABEL_WARNING
ScyllaConfiguration.LABEL_METADATA
ScyllaConfiguration.LABEL_CONFIGURATION
ScyllaConfiguration.LABEL_ACTIONS
ScyllaConfiguration.LABEL_VALIDATE
ScyllaConfiguration.LABEL_RESET_TO_DEFAULTS
ScyllaConfiguration.LABEL_APPLY_NOW
ScyllaConfiguration.LABEL_RESOURCE_PATH
ScyllaConfiguration.LABEL_ASSET_PATH
ScyllaConfiguration.LABEL_EXPORT_CONFIG_FILE
ScyllaConfiguration.LABEL_TO_USER_DOCUMENTS
ScyllaConfiguration.LABEL_TO_APP_FOLDER
ScyllaConfiguration.MSG_RESET_CONFIRM_TITLE
ScyllaConfiguration.MSG_RESET_CONFIRM_BODY
ScyllaConfiguration.MSG_RESET_BUTTON
ScyllaConfiguration.MSG_CANCEL_BUTTON
ScyllaConfiguration.MSG_OK_BUTTON
ScyllaConfiguration.MSG_VALIDATION_TITLE
ScyllaConfiguration.MSG_EXPORT_CONFIG_TITLE
ScyllaConfiguration.MSG_OVERWRITE_BUTTON
ScyllaConfiguration.ConfigFileEnabledInDebugBuild
ScyllaConfiguration.ConfigFileEnabledInProductionBuild
ScyllaConfiguration.CreateConfigFile
ScyllaConfiguration.ConfigurationName
ScyllaConfiguration.Description
ScyllaConfiguration.IsConfigFileEnabledForCurrentBuild()
ScyllaConfiguration.IsValid()
ScyllaConfiguration.GetConfigFileBaseName()
ScriptableObject.CreateInstance<T>()
Object.GetEntityId()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.FindAnyObjectByType<T>()
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.ToString()
Object.name
Object.hideFlags
Assembly: ScyllaInput.dll
[CreateAssetMenu(fileName = "Scylla Input Configuration", menuName = "Scylla/Input/Input Configuration")]
public sealed class ScyllaInputConfiguration : ScyllaConfiguration
Fields
Declaration
public const string BASE_INPUT_ACTIONS_PATH = "Input Actions/Scylla Input Actions - Base"
Field Value
Filename for auto-loading this configuration.
Declaration
public const string CONFIG_FILENAME = "Scylla Input Configuration"
Field Value
Declaration
public const string DEFAULT_FALLBACK_ICON_SET_ID = "gamepad_generic"
Field Value
Declaration
public const string DEFAULT_INPUT_ACTIONS_PATH = "Input Actions/Scylla Input Actions - Default"
Field Value
Declaration
public const string DEFAULT_KEYBOARD_ICON_SET_ID = "keyboard_mouse"
Field Value
Declaration
public const string DEFAULT_NINTENDO_ICON_SET_ID = "gamepad_nintendo"
Field Value
Declaration
public const string DEFAULT_PLAYSTATION_ICON_SET_ID = "gamepad_playstation"
Field Value
Declaration
public const string DEFAULT_XBOX_ICON_SET_ID = "gamepad_xbox"
Field Value
Display name for this configuration type.
Declaration
public const string DISPLAY_NAME = "Input Settings"
Field Value
Declaration
public const string GROUP_BINDING_STORAGE = "Binding Storage"
Field Value
Declaration
public const string GROUP_BRIDGE_SETTINGS = "Bridge Settings"
Field Value
Declaration
public const string GROUP_CONTROL_SCHEME_DETECTION = "Control Scheme Detection"
Field Value
Declaration
public const string GROUP_INPUT_BUFFERING = "Input Buffering"
Field Value
Declaration
public const string GROUP_INPUT_LOGGING = "Input Logging"
Field Value
Declaration
public const string GROUP_REBIND_SETTINGS = "Rebind Settings"
Field Value
Declaration
public const string INPUT_ACTIONS_RESOURCES_FOLDER = "Input Actions"
Field Value
Declaration
public const string KEY_AUTO_DETECTION_ENABLED = "AutoDetectionEnabled"
Field Value
Declaration
public const string KEY_AUTO_LOAD_BINDINGS = "AutoLoadBindings"
Field Value
Declaration
public const string KEY_AUTO_SAVE_BINDINGS = "AutoSaveBindings"
Field Value
Declaration
public const string KEY_BUFFERING_ENABLED = "BufferingEnabled"
Field Value
Declaration
public const string KEY_DEFAULT_BRIDGE_PRIORITY = "DefaultBridgePriority"
Field Value
Declaration
public const string KEY_DEFAULT_BUFFER_WINDOW = "DefaultBufferWindow"
Field Value
Declaration
public const string KEY_DEFAULT_CANCEL_PATH = "DefaultCancelPath"
Field Value
Declaration
public const string KEY_DEFAULT_CONFLICT_RESOLUTION = "DefaultConflictResolution"
Field Value
Declaration
public const string KEY_DEFAULT_PROFILE_ID = "DefaultProfileID"
Field Value
Declaration
public const string KEY_DEFAULT_QUERY_MODE = "DefaultQueryMode"
Field Value
Declaration
public const string KEY_EXCLUDE_MOUSE_DELTA = "ExcludeMouseDelta"
Field Value
Declaration
public const string KEY_EXCLUDE_MOUSE_POSITION = "ExcludeMousePosition"
Field Value
Declaration
public const string KEY_GAMEPAD_STICK_THRESHOLD = "GamepadStickThreshold"
Field Value
Declaration
public const string KEY_GAMEPAD_TRIGGER_THRESHOLD = "GamepadTriggerThreshold"
Field Value
Declaration
public const string KEY_JSON_STORAGE_FOLDER = "JSONStorageFolder"
Field Value
Declaration
public const string KEY_LOG_BINDING_CHANGES = "LogBindingChanges"
Field Value
KEY_LOG_CONTEXT_CHANGES
Declaration
public const string KEY_LOG_CONTEXT_CHANGES = "LogContextChanges"
Field Value
Declaration
public const string KEY_LOG_SCHEME_CHANGES = "LogSchemeChanges"
Field Value
Declaration
public const string KEY_MAX_BUFFERED_INPUTS = "MaxBufferedInputs"
Field Value
Declaration
public const string KEY_MOUSE_DELTA_THRESHOLD = "MouseDeltaThreshold"
Field Value
Declaration
public const string KEY_SCHEME_SWITCH_COOLDOWN = "SchemeSwitchCooldown"
Field Value
Declaration
public const string KEY_STORAGE_TYPE = "StorageType"
Field Value
Declaration
public const string KEY_TIMEOUT = "Timeout"
Field Value
Declaration
public const string LABEL_BINDING_STORAGE = "Binding Storage"
Field Value
Declaration
public const string LABEL_BRIDGE_CONFIGURATION = "Bridge Configuration"
Field Value
Declaration
public const string LABEL_CONTROL_SCHEME_DETECTION = "Control Scheme Detection"
Field Value
Declaration
public const string LABEL_DEFAULT_ICON_SETS = "Default Icon Sets"
Field Value
Declaration
public const string LABEL_INPUT_ACTIONS = "Input Actions"
Field Value
Declaration
public const string LABEL_INPUT_BUFFERING = "Input Buffering"
Field Value
Declaration
public const string LABEL_INPUT_LOGGING = "Input Logging"
Field Value
Declaration
public const string LABEL_REBINDING = "Rebinding"
Field Value
Declaration
public const string MSG_CONFIGURATION_APPLIED = "ScyllaInputConfiguration applied."
Field Value
Declaration
public const string MSG_INSTANCE_NOT_AVAILABLE = "ScyllaInput instance not available. Configuration will be applied when the module initializes."
Field Value
Declaration
public const string MSG_INVALID_BINDING_STORAGE_TYPE = "Invalid BindingStorageType value"
Field Value
Declaration
public const string MSG_INVALID_CONFLICT_RESOLUTION = "Invalid InputConflictResolution value"
Field Value
Declaration
public const string MSG_INVALID_QUERY_MODE = "Invalid InputBridgeQueryMode value"
Field Value
Declaration
public const string NESTED_GROUP_BINDING_STORAGE = "BindingStorage"
Field Value
Declaration
public const string NESTED_GROUP_BRIDGE_SETTINGS = "BridgeSettings"
Field Value
Declaration
public const string NESTED_GROUP_INPUT_LOGGING = "InputLogging"
Field Value
Declaration
public const string NESTED_GROUP_REBIND_SETTINGS = "RebindSettings"
Field Value
Properties
Gets whether the Input module automatically detects which control scheme is in use
(keyboard/mouse vs. gamepad) based on incoming input events. When false, the
active scheme must be set programmatically via the control scheme manager.
Defaults to true.
Declaration
public bool AutoDetectionEnabled { get; }
Property Value
Gets the binding storage settings that govern how player binding overrides are
persisted and loaded. See BindingStorageSettings for individual options.
Declaration
public BindingStorageSettings BindingStorage { get; }
Property Value
Gets whether the input buffering system is active. When true, inputs received
just before or during an action's active window are buffered and replayed within the
DefaultBufferWindow time frame. Useful for fighting games or any game
requiring lenient input timing. Defaults to false.
Declaration
public bool BufferingEnabled { get; }
Property Value
Gets the duration in seconds that a buffered input remains valid and can be replayed.
Inputs older than this window are discarded. Valid range: 0.05-1.0 seconds.
Defaults to 0.15.
Declaration
public float DefaultBufferWindow { get; }
Property Value
Gets the icon set used when no platform-specific icon set matches the active device,
or when any of the platform-specific sets are null. Returns null if
no fallback set has been assigned, in which case no icons will be displayed.
Declaration
public InputIconSet FallbackIconSet { get; }
Property Value
Gets the minimum analog stick magnitude (0-1) required for a gamepad stick event
to trigger a switch to the gamepad control scheme. Prevents stick drift from causing
false scheme switches. Valid range: 0.05-0.5. Defaults to 0.2.
Declaration
public float GamepadStickThreshold { get; }
Property Value
Gets the minimum analog trigger value (0-1) required for a gamepad trigger event
to trigger a switch to the gamepad control scheme. Valid range: 0.05-0.5.
Defaults to 0.1.
Declaration
public float GamepadTriggerThreshold { get; }
Property Value
Gets or sets the InputActionAsset that is registered with the Unity Input System
automatically when the Scylla Input module initializes. This asset defines all action
maps and their default bindings. Other modules (e.g., Console, Camera) reference action
maps by name from this asset.
Declaration
public InputActionAsset InputActionAsset { get; }
Property Value
| Type |
Description |
| InputActionAsset |
The registered asset, or null if none has been assigned. When null, the
module attempts to load the asset from the path
"Input Actions/Scylla Input Actions - Action Game" in Resources as a fallback, which is the factory
asset for 3D action games.
|
Gets every InputActionAsset the module registers, in registration order.
Declaration
public IReadOnlyList<InputActionAsset> InputActionAssets { get; }
Property Value
| Type |
Description |
| IReadOnlyList<InputActionAsset> |
The assets, in order. Empty when none has been assigned.
|
Gets the icon set registered with the hints manager when the active control scheme
is keyboard/mouse. Used to display contextual button prompt images in the UI.
Returns null if no keyboard icon set has been assigned.
Declaration
public InputIconSet KeyboardIconSet { get; }
Property Value
Gets the per-category log verbosity settings for the Input module.
See InputLoggingSettings for individual flags.
Declaration
public InputLoggingSettings Logging { get; }
Property Value
Gets the maximum number of inputs that can be held in the buffer simultaneously.
When the buffer is full, the oldest buffered input is discarded to make room.
Valid range: 1-20. Defaults to 10.
Declaration
public int MaxBufferedInputs { get; }
Property Value
Gets the minimum mouse delta magnitude (in pixels per frame) required to trigger a
switch to the keyboard/mouse control scheme. Prevents minor cursor jitter from
switching schemes during gamepad use. Valid range: 1-20. Defaults to 5.
Declaration
public float MouseDeltaThreshold { get; }
Property Value
Gets the icon set registered with the hints manager when the active gamepad is
detected as a Nintendo controller. Returns null if no Nintendo icon set has
been assigned; the FallbackIconSet is used instead.
Declaration
public InputIconSet NintendoIconSet { get; }
Property Value
Gets the icon set registered with the hints manager when the active gamepad is
detected as a PlayStation controller. Returns null if no PlayStation icon set
has been assigned; the FallbackIconSet is used instead.
Declaration
public InputIconSet PlayStationIconSet { get; }
Property Value
Gets the default interactive rebinding settings applied to every rebind operation.
See RebindSettings for individual options.
Declaration
public RebindSettings Rebind { get; }
Property Value
Gets the minimum number of seconds that must elapse between consecutive control
scheme switches. This cooldown prevents rapid toggling when the player briefly
touches both a gamepad and a keyboard at the same time.
Valid range: 0.1-2.0 seconds. Defaults to 0.3.
Declaration
public float SchemeSwitchCooldown { get; }
Property Value
Gets the icon set registered with the hints manager when the active gamepad is
detected as an Xbox controller. Returns null if no Xbox icon set has been
assigned; the FallbackIconSet is used instead.
Declaration
public InputIconSet XboxIconSet { get; }
Property Value
Methods
Applies all configuration settings to the currently running Scylla Input module.
Pushes values to the control scheme manager, buffer manager, hints manager, and
bridge manager. Has no effect if Instance is null;
a warning is logged in that case and settings will be applied during initialization
when the module starts up.
Declaration
public override void Apply()
Overrides
Scylla.Core.Config.ScyllaConfiguration.Apply()
Applies overrides from a config file to input configuration fields.
Supported groups: "Control Scheme Detection", "Input Buffering",
"Binding Storage", "Rebind Settings", "Bridge Settings", "Input Logging".
Excluded: ScriptableObject references (icon sets) which cannot be deserialized from JSON.
Declaration
public override int ApplyConfigFileOverrides(ConfigFile configFile)
Parameters
| Type |
Name |
Description |
| ConfigFile |
configFile |
The Scylla.Core.Util.File.ConfigFile loaded by Scylla.Core.Config.ConfigFileManager for this
configuration. Will not be null when called by the framework, but
implementations should guard against it for robustness.
|
Returns
| Type |
Description |
| int |
The number of config-file properties that were successfully read and written to
serialized fields. A return value of 0 means no overrides were applied.
|
Overrides
Scylla.Core.Config.ScyllaConfiguration.ApplyConfigFileOverrides(Scylla.Core.Util.File.ConfigFile)
Exports input configuration fields to a config file.
Supported groups: "Control Scheme Detection", "Input Buffering",
"Binding Storage", "Rebind Settings", "Bridge Settings", "Input Logging".
Excluded: ScriptableObject references (icon sets) which cannot be serialized to JSON.
Declaration
public override ConfigFile ExportToConfigFile()
Returns
| Type |
Description |
| ConfigFile |
A new Scylla.Core.Util.File.ConfigFile populated with the current configuration values,
ready for serialization to JSON via Scylla.Core.Util.File.ConfigFile.ToJSON().
|
Overrides
Scylla.Core.Config.ScyllaConfiguration.ExportToConfigFile()
Returns the display name used as the key for loading and saving the JSON config file
associated with this configuration type.
The returned name should follow the Scylla convention
"Scylla [Name] Configuration" (e.g. "Scylla Core Configuration")
so that Scylla.Core.Config.ScyllaConfiguration.GetConfigFileBaseName() can derive the compact base name
("Core") used for the actual JSON filename on disk. Override this method
in concrete subclasses that support config-file overrides; the default returns
null, which disables config-file support for that configuration type.
Declaration
public override string GetConfigFileName()
Returns
| Type |
Description |
| string |
The full configuration name string (e.g. "Scylla Core Configuration"), or
null if this configuration type does not participate in the config-file system.
|
Overrides
Scylla.Core.Config.ScyllaConfiguration.GetConfigFileName()
Returns the InputIconSet that corresponds to the specified gamepad type.
If the matching platform-specific set is not assigned, the FallbackIconSet
is returned instead.
Declaration
public InputIconSet GetIconSetForGamepad(GamepadType gamepadType)
Parameters
| Type |
Name |
Description |
| GamepadType |
gamepadType |
The type of gamepad to retrieve an icon set for. Generic and Steam gamepads
fall back to the Xbox icon set.
|
Returns
| Type |
Description |
| InputIconSet |
The assigned icon set for the given gamepad type, or FallbackIconSet
when the platform-specific set is null. May return null if both the
platform set and the fallback set are unassigned.
|
Returns the InputIconSet appropriate for the given control scheme and,
when the scheme is gamepad, the specific gamepad type.
Declaration
public InputIconSet GetIconSetForScheme(ControlSchemeType schemeType, GamepadType gamepadType = GamepadType.Generic)
Parameters
Returns
| Type |
Description |
| InputIconSet |
The matching InputIconSet, or FallbackIconSet when no
platform-specific set is assigned. May return null if both the matching set
and the fallback set are unassigned.
|
Loads the default ScyllaInputConfiguration asset from the Resources folder
using the standard Scylla configuration path. This is the same asset that the module
auto-loads during initialization when no asset is assigned in the Bootstrap Inspector.
Declaration
public static ScyllaInputConfiguration LoadDefault()
Returns
Called by Unity when the ScriptableObject is first created or when the user resets
it via the Inspector context menu. Calls the base Scylla.Core.Config.ScyllaConfiguration.Reset()
implementation, then attempts to auto-assign the InputActionAsset and the
five default InputIconSet slots when they are currently unassigned.
Declaration
protected override void Reset()
Overrides
Scylla.Core.Config.ScyllaConfiguration.Reset()
Resets all numeric and boolean configuration fields to their built-in default values.
ScriptableObject asset references (icon sets and the InputActionAsset)
are intentionally preserved so that Inspector assignments are not lost.
Declaration
public override void ResetToDefaults()
Overrides
Scylla.Core.Config.ScyllaConfiguration.ResetToDefaults()
Validates all configuration values and returns an array of diagnostic results.
Checks include scheme-switch cooldown range, buffer window plausibility, icon set
assignment, binding storage path validity, rebind timeout range, cancel path presence,
and bridge priority range. Does not modify any field values.
Declaration
public override ConfigurationValidationResult[] Validate()
Returns
| Type |
Description |
| ConfigurationValidationResult[] |
An array of Scylla.Core.Config.ConfigurationValidationResult entries. An empty array
indicates all values passed validation. Results may have
Scylla.Core.Config.ValidationSeverity.Info, Scylla.Core.Config.ValidationSeverity.Warning, or
Scylla.Core.Config.ValidationSeverity.Error severity.
|
Overrides
Scylla.Core.Config.ScyllaConfiguration.Validate()