Scylla Framework
  • API Reference
Search Results for

    Show / Hide Table of Contents
    • Scylla.Input
      • AutoResolveChange
      • AutoResolveResult
      • BindingConflict
      • BindingStorageSettings
      • BindingStorageType
      • BridgeSettings
      • BufferedInput
      • ConfigActionEntry
      • ConfigActionGroup
      • ConfigBindingEntry
      • ConfigConflict
      • ConfigGroupExclusion
      • ConfigLayout
      • ConfigLayout.Builder
      • ConfigLayoutColumnDefinition
      • ConfigLayoutConflictScope
      • ConfigLayoutDefinition
      • ConfigLayoutExclusionDefinition
      • ConfigLayoutGroupDefinition
      • ConfigLayoutGroupMode
      • ConfigLayoutMemberReference
      • ConfigLayoutValidationMessage
      • ConfigLayoutValidationSeverity
      • ConfigSchemeGroup
      • ContextConflictScope
      • ContextValidationMessage
      • ContextValidationSeverity
      • ControlScheme
      • ControlSchemeChangedEvent
      • ControlSchemeManager
      • ControlSchemeType
      • GamepadButton
      • GamepadType
      • IBindingStorage
      • IControlSchemeManager
      • IInputActionManager
      • IInputBindingManager
      • IInputBridgeManager
      • IInputBufferManager
      • IInputConflictScope
      • IInputContextManager
      • IInputControlAliasResolver
      • IInputHintsManager
      • IInputListener
      • IInputRebindabilityProvider
      • IScyllaInputBridge
      • IdentityControlAliasResolver
      • InputActionCanceledEvent
      • InputActionManager
      • InputActionMapNode
      • InputActionMetadata
      • InputActionNode
      • InputActionPerformedEvent
      • InputActionStartedEvent
      • InputActionsDocument
      • InputActionsDocumentIO
      • InputActionsJSONKeys
      • InputAnnotation
      • InputAssetInfo
      • InputBindingGroups
      • InputBindingManager
      • InputBindingMetadata
      • InputBindingNode
      • InputBindingsLoadedEvent
      • InputBindingsSavedEvent
      • InputBridgeManager
      • InputBridgeQueryMode
      • InputBufferConsumedEvent
      • InputBufferManager
      • InputBufferedEvent
      • InputCodegenSettings
      • InputCompositeUtil
      • InputConflictEngine
      • InputConflictPair
      • InputConflictPolicy
      • InputConflictReason
      • InputConflictRecord
      • InputConflictRecordBuilder
      • InputConflictResolution
      • InputConflictSet
      • InputContext
      • InputContextChangedEvent
      • InputContextDefinition
      • InputContextExclusivity
      • InputContextManager
      • InputContextPoppedEvent
      • InputContextPushedEvent
      • InputControlAliasEntry
      • InputControlAliasResolver
      • InputControlAliasScope
      • InputControlPathUtil
      • InputControlSchemeNode
      • InputDeviceChangedEvent
      • InputDeviceConnectedEvent
      • InputDeviceDisconnectedEvent
      • InputDeviceType
      • InputDeviceUtil
      • InputDisabledEvent
      • InputEnabledEvent
      • InputEventType
      • InputHint
      • InputHintChangedEvent
      • InputHintsManager
      • InputIconSet
      • InputIconSet.IconMapping
      • InputIconSetChangedEvent
      • InputInteractionKind
      • InputInteractionResolver
      • InputInteractionSignature
      • InputJSONMember
      • InputJSONNode
      • InputJSONNodeReader
      • InputJSONNodeType
      • InputJSONNodeWriter
      • InputLoggingSettings
      • InputMapMetadata
      • InputMetadataRebindabilityProvider
      • InputMetadataReconciler
      • InputMetadataRecordKind
      • InputModifierMetadataUtil
      • InputOrphanRecord
      • InputRebindCancelledEvent
      • InputRebindCompletedEvent
      • InputRebindManager
      • InputRebindOperation
      • InputRebindStartedEvent
      • InputRebindUtils
      • InputRebindability
      • InputReconcileAction
      • InputReconcileOptions
      • InputReconcileReport
      • InputReconcileReport.Entry
      • InputSchemeDeviceNode
      • InputSchemeMetadata
      • JSONFileBindingStorage
      • ManagedRebindCancelledEvent
      • ManagedRebindCompletedEvent
      • ManagedRebindDataRefreshedEvent
      • ManagedRebindStartedEvent
      • PlayerPrefsBindingStorage
      • RebindMode
      • RebindSettings
      • ScyllaInput
      • ScyllaInput.Meta
      • ScyllaInputAction
      • ScyllaInputActionMap
      • ScyllaInputActionsMetadata
      • ScyllaInputActionsMetadataMigrator
      • ScyllaInputBinding
      • ScyllaInputConfiguration
      • ScyllaInputContextConfiguration
      • ScyllaKey
      • ScyllaKeyConverter
      • ScyllaModifier
      • UnityInputSystemBridge
    • Scylla.Input.Editor
      • DeviceStatusWidget
      • IconMappingDrawer
      • InputIconSetEditor
      • ScyllaInputActionsMetadataEditor
      • ScyllaInputConfigurationEditor
      • ScyllaInputContextConfigurationEditor
      • ScyllaInputDependencyProvider
      • ScyllaInputEditor
      • ScyllaInputGameProfile
      • ScyllaInputGameProfiles
      • ScyllaInputMenuItems
      • ScyllaInputWizard

    Class InputActionsJSONKeys

    The member names used by Unity's input action asset format, and the order in which Unity emits them.

    Inheritance
    object
    InputActionsJSONKeys
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Scylla.Input
    Assembly: ScyllaInput.dll
    Syntax
    public static class InputActionsJSONKeys
    Remarks

    Order matters. Unity derives it from the field declaration order of the private serialization structs in the Input System package, and reproducing it is what allows a newly authored asset to be byte-identical to one Unity would have written. An asset parsed from disk keeps whatever order it arrived in, so these arrays are consulted only when building nodes from scratch.

    One ordering is genuinely surprising and worth stating plainly: a binding lists interactions before processors, while an action lists processors before interactions. The two are reversed with respect to each other. Nothing enforces this at compile time and getting it wrong produces a file that is valid, loads correctly, and differs from Unity's output.

    Fields

    ACTION

    Owning action name. Bindings reference their action by name, not by GUID.

    Declaration
    public const string ACTION = "action"
    Field Value
    Type Description
    string

    ACTIONS

    The action array on a map.

    Declaration
    public const string ACTIONS = "actions"
    Field Value
    Type Description
    string

    ACTION_ORDER

    Member order Unity emits for an action.

    Declaration
    public static readonly string[] ACTION_ORDER
    Field Value
    Type Description
    string[]

    BINDINGS

    The binding array on a map. Bindings are stored on the map, not the action.

    Declaration
    public const string BINDINGS = "bindings"
    Field Value
    Type Description
    string

    BINDING_GROUP

    The binding group a control scheme owns. Often, but not always, equal to its name.

    Declaration
    public const string BINDING_GROUP = "bindingGroup"
    Field Value
    Type Description
    string

    BINDING_ORDER

    Member order Unity emits for a binding. Note INTERACTIONS precedes PROCESSORS here, the reverse of ACTION_ORDER.

    Declaration
    public static readonly string[] BINDING_ORDER
    Field Value
    Type Description
    string[]

    CONTROL_SCHEMES

    The control scheme array.

    Declaration
    public const string CONTROL_SCHEMES = "controlSchemes"
    Field Value
    Type Description
    string

    CONTROL_SCHEME_ORDER

    Member order Unity emits for a control scheme.

    Declaration
    public static readonly string[] CONTROL_SCHEME_ORDER
    Field Value
    Type Description
    string[]

    DEVICES

    The device requirement array on a control scheme.

    Declaration
    public const string DEVICES = "devices"
    Field Value
    Type Description
    string

    DEVICE_ORDER

    Member order Unity emits for a control scheme device requirement.

    Declaration
    public static readonly string[] DEVICE_ORDER
    Field Value
    Type Description
    string[]

    DEVICE_PATH

    Device layout path, for example <Gamepad>.

    Declaration
    public const string DEVICE_PATH = "devicePath"
    Field Value
    Type Description
    string

    EXPECTED_CONTROL_TYPE

    Expected control layout, for example Vector2.

    Declaration
    public const string EXPECTED_CONTROL_TYPE = "expectedControlType"
    Field Value
    Type Description
    string

    GROUPS

    Semicolon-separated binding group names, matching control scheme binding groups.

    Declaration
    public const string GROUPS = "groups"
    Field Value
    Type Description
    string

    ID

    Stable GUID. Present on maps, actions and bindings, but not control schemes.

    Declaration
    public const string ID = "id"
    Field Value
    Type Description
    string

    INITIAL_STATE_CHECK

    Whether the action performs an initial state check when enabled.

    Declaration
    public const string INITIAL_STATE_CHECK = "initialStateCheck"
    Field Value
    Type Description
    string

    INTERACTIONS

    Semicolon-separated interaction list.

    Declaration
    public const string INTERACTIONS = "interactions"
    Field Value
    Type Description
    string

    IS_COMPOSITE

    Whether this binding is a composite head.

    Declaration
    public const string IS_COMPOSITE = "isComposite"
    Field Value
    Type Description
    string

    IS_OPTIONAL

    Whether the device requirement is optional.

    Declaration
    public const string IS_OPTIONAL = "isOptional"
    Field Value
    Type Description
    string

    IS_OR

    Whether the device requirement is OR-ed with the preceding one.

    Declaration
    public const string IS_OR = "isOR"
    Field Value
    Type Description
    string

    IS_PART_OF_COMPOSITE

    Whether this binding is a part of the preceding composite head.

    Declaration
    public const string IS_PART_OF_COMPOSITE = "isPartOfComposite"
    Field Value
    Type Description
    string

    MAPS

    The action map array.

    Declaration
    public const string MAPS = "maps"
    Field Value
    Type Description
    string

    MAP_ORDER

    Member order Unity emits for an action map.

    Declaration
    public static readonly string[] MAP_ORDER
    Field Value
    Type Description
    string[]

    NAME

    Element name. Present on maps, actions, bindings and control schemes.

    Declaration
    public const string NAME = "name"
    Field Value
    Type Description
    string

    PATH

    Control path, for example <Keyboard>/w, or a composite type name.

    Declaration
    public const string PATH = "path"
    Field Value
    Type Description
    string

    PROCESSORS

    Semicolon-separated processor list.

    Declaration
    public const string PROCESSORS = "processors"
    Field Value
    Type Description
    string

    ROOT_ORDER

    Member order Unity emits for the root object.

    Declaration
    public static readonly string[] ROOT_ORDER
    Field Value
    Type Description
    string[]

    TYPE

    Action type: Button, Value or PassThrough.

    Declaration
    public const string TYPE = "type"
    Field Value
    Type Description
    string

    VERSION

    Format version. The only numeric member anywhere in the format.

    Declaration
    public const string VERSION = "version"
    Field Value
    Type Description
    string

    Methods

    SetBoolOrdered(InputJSONNode, string[], string, bool)

    Sets a boolean member at its schema position.

    Declaration
    public static void SetBoolOrdered(InputJSONNode node, string[] order, string key, bool value)
    Parameters
    Type Name Description
    InputJSONNode node

    The object node to write into.

    string[] order

    The schema order.

    string key

    The member name.

    bool value

    The value.

    SetMemberOrdered(InputJSONNode, string[], string, InputJSONNode)

    Sets a member, placing it at its schema position when it was not already present.

    Declaration
    public static void SetMemberOrdered(InputJSONNode node, string[] order, string key, InputJSONNode value)
    Parameters
    Type Name Description
    InputJSONNode node

    The object node to write into.

    string[] order

    The schema order, for example ACTION_ORDER.

    string key

    The member name.

    InputJSONNode value

    The member value.

    Remarks

    InputJSONNode.SetMember appends when the key is absent, which is correct for a node type that knows nothing about this format. It is wrong for an asset: setting expectedControlType on a hand-edited action that happens to lack it would put the member after initialStateCheck, producing a file that loads correctly and differs from Unity's output for no reason the reader can see.

    The insertion point is the first existing member that the order array ranks after the new one. Members the array does not know about, which only appear in hand-authored files, rank last and are therefore inserted before rather than reordered. Nothing here moves a member that already exists: an asset parsed from disk keeps whatever order it arrived in, and quietly normalizing that would turn one edit into a whole-file diff.

    Exceptions
    Type Condition
    ArgumentNullException

    Thrown when the node, the order, the key or the value is null.

    SetStringOrdered(InputJSONNode, string[], string, string)

    Sets a string member at its schema position.

    Declaration
    public static void SetStringOrdered(InputJSONNode node, string[] order, string key, string value)
    Parameters
    Type Name Description
    InputJSONNode node

    The object node to write into.

    string[] order

    The schema order.

    string key

    The member name.

    string value

    The value. null is written as an empty string, as Unity does.

    In this article
    Back to top Scylla Framework - Input Module API Documentation