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 InputControlSchemeNode

    A control scheme, viewed through the underlying InputJSONNode.

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

    Control schemes are the one element of this format that carries no GUID. They are identified by Name alone, and bindings associate with them through BindingGroup rather than by reference. A scheme rename is therefore a multi-target edit, and a rename made outside this tooling cannot be tracked.

    Name and BindingGroup are usually equal but are not required to be, which is a recurring source of confusion when reading an asset.

    Constructors

    InputControlSchemeNode(InputJSONNode)

    Wraps an existing control scheme node and builds wrappers for its device requirements.

    Declaration
    public InputControlSchemeNode(InputJSONNode node)
    Parameters
    Type Name Description
    InputJSONNode node

    The backing node.

    Exceptions
    Type Condition
    ArgumentNullException

    Thrown when the node is null.

    Properties

    BindingGroup

    Gets or sets the binding group this scheme owns.

    Declaration
    public string BindingGroup { get; set; }
    Property Value
    Type Description
    string

    Devices

    Gets the device requirements, in document order.

    Declaration
    public IReadOnlyList<InputSchemeDeviceNode> Devices { get; }
    Property Value
    Type Description
    IReadOnlyList<InputSchemeDeviceNode>

    Name

    Gets or sets the scheme name.

    Declaration
    public string Name { get; set; }
    Property Value
    Type Description
    string

    Node

    Gets the backing node, for access to members this wrapper does not model.

    Declaration
    public InputJSONNode Node { get; }
    Property Value
    Type Description
    InputJSONNode

    Methods

    AddDevice(string, bool, bool)

    Appends a device requirement.

    Declaration
    public InputSchemeDeviceNode AddDevice(string devicePath, bool isOptional = false, bool isOR = false)
    Parameters
    Type Name Description
    string devicePath

    Device layout path.

    bool isOptional

    Whether the device is optional.

    bool isOR

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

    Returns
    Type Description
    InputSchemeDeviceNode

    The created requirement.

    Create(string, string)

    Builds a new, empty control scheme node with its members in the order Unity emits them.

    Declaration
    public static InputControlSchemeNode Create(string name, string bindingGroup = null)
    Parameters
    Type Name Description
    string name

    Scheme name.

    string bindingGroup

    Binding group, or null to reuse the name.

    Returns
    Type Description
    InputControlSchemeNode

    The wrapper around the new node.

    IndexOfDevice(InputSchemeDeviceNode)

    Finds a device requirement's position in this scheme.

    Declaration
    public int IndexOfDevice(InputSchemeDeviceNode device)
    Parameters
    Type Name Description
    InputSchemeDeviceNode device

    The requirement to locate.

    Returns
    Type Description
    int

    The zero-based position, or -1 when it is not part of this scheme.

    InsertDevice(int, string, bool, bool)

    Creates a device requirement at a position.

    Declaration
    public InputSchemeDeviceNode InsertDevice(int index, string devicePath, bool isOptional, bool isOR)
    Parameters
    Type Name Description
    int index

    Where to insert, clamped into range.

    string devicePath

    Device layout path, for example <Gamepad>.

    bool isOptional

    Whether the device is optional.

    bool isOR

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

    Returns
    Type Description
    InputSchemeDeviceNode

    The created requirement.

    InsertDeviceNode(int, InputJSONNode)

    Inserts an existing device requirement node at a position.

    Declaration
    public InputSchemeDeviceNode InsertDeviceNode(int index, InputJSONNode deviceNode)
    Parameters
    Type Name Description
    int index

    Where to insert, clamped into range.

    InputJSONNode deviceNode

    The device node to adopt.

    Returns
    Type Description
    InputSchemeDeviceNode

    The wrapper for the inserted node.

    Remarks

    Order carries meaning here. A requirement marked as OR-ed combines with the one before it, so moving a requirement past an OR-ed neighbour changes which devices satisfy the scheme.

    Exceptions
    Type Condition
    ArgumentNullException

    Thrown when the node is null.

    RefreshNodeCache()

    Rebuilds this scheme's device wrappers from its JSON.

    Declaration
    public void RefreshNodeCache()
    Remarks

    Needed after editing the device array through Node directly. Every existing wrapper is discarded, so a caller holding one across this call is holding an orphan.

    RemoveDevice(InputSchemeDeviceNode)

    Removes a device requirement.

    Declaration
    public bool RemoveDevice(InputSchemeDeviceNode device)
    Parameters
    Type Name Description
    InputSchemeDeviceNode device

    The requirement to remove.

    Returns
    Type Description
    bool

    true when it belonged to this scheme and was removed.

    RemoveDeviceAt(int)

    Removes the device requirement at a position.

    Declaration
    public bool RemoveDeviceAt(int index)
    Parameters
    Type Name Description
    int index

    The position to remove.

    Returns
    Type Description
    bool

    true when something was removed.

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