Hello
I just updated to version 1.1.1 and now I’m getting an some errors when I try to use on screen controls with a custom device.
I’ve tested it in a new project (2020.3.18f1) using the Custom Device and On-Screen Controls samples and get the same result.
If I open the OnScreenControlsSample scene and change the control path for one of the buttons to a CustomDevice button I get the following errors:
NullReferenceException while resolving binding 'Submit:*/{Submit}' in action map 'DefaultInputActions (UnityEngine.InputSystem.InputActionAsset):UI'
UnityEngine.InputSystem.UI.InputSystemUIInputModule:OnEnable () (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Plugins/UI/InputSystemUIInputModule.cs:1378)
NullReferenceException: Object reference not set to an instance of an object
UnityEngine.InputSystem.InputControlPath.MatchByUsageAtDeviceRootRecursive[TControl] (UnityEngine.InputSystem.InputDevice device, System.String path, System.Int32 indexInPath, UnityEngine.InputSystem.InputControlList`1[TControl]& matches, System.Boolean matchMultiple) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Controls/InputControlPath.cs:920)
UnityEngine.InputSystem.InputControlPath.MatchControlsRecursive[TControl] (UnityEngine.InputSystem.InputControl control, System.String path, System.Int32 indexInPath, UnityEngine.InputSystem.InputControlList`1[TControl]& matches, System.Boolean matchMultiple) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Controls/InputControlPath.cs:897)
UnityEngine.InputSystem.InputControlPath.TryFindControls[TControl] (UnityEngine.InputSystem.InputControl control, System.String path, System.Int32 indexInPath, UnityEngine.InputSystem.InputControlList`1[TControl]& matches) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Controls/InputControlPath.cs:663)
UnityEngine.InputSystem.InputManager.GetControls[TControl] (System.String path, UnityEngine.InputSystem.InputControlList`1[TControl]& controls) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/InputManager.cs:952)
UnityEngine.InputSystem.InputSystem.FindControls[TControl] (System.String path, UnityEngine.InputSystem.InputControlList`1[TControl]& controls) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/InputSystem.cs:2226)
UnityEngine.InputSystem.InputBindingResolver.AddActionMap (UnityEngine.InputSystem.InputActionMap map) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Actions/InputBindingResolver.cs:281)
UnityEngine.InputSystem.UI.InputSystemUIInputModule:OnEnable() (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Plugins/UI/InputSystemUIInputModule.cs:1378)
NullReferenceException: Object reference not set to an instance of an object
UnityEngine.InputSystem.InputControlPath.MatchByUsageAtDeviceRootRecursive[TControl] (UnityEngine.InputSystem.InputDevice device, System.String path, System.Int32 indexInPath, UnityEngine.InputSystem.InputControlList`1[TControl]& matches, System.Boolean matchMultiple) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Controls/InputControlPath.cs:920)
UnityEngine.InputSystem.InputControlPath.MatchControlsRecursive[TControl] (UnityEngine.InputSystem.InputControl control, System.String path, System.Int32 indexInPath, UnityEngine.InputSystem.InputControlList`1[TControl]& matches, System.Boolean matchMultiple) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Controls/InputControlPath.cs:897)
UnityEngine.InputSystem.InputControlPath.TryFindControls[TControl] (UnityEngine.InputSystem.InputControl control, System.String path, System.Int32 indexInPath, UnityEngine.InputSystem.InputControlList`1[TControl]& matches) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Controls/InputControlPath.cs:663)
UnityEngine.InputSystem.InputManager.GetControls[TControl] (System.String path, UnityEngine.InputSystem.InputControlList`1[TControl]& controls) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/InputManager.cs:952)
UnityEngine.InputSystem.InputSystem.FindControls[TControl] (System.String path, UnityEngine.InputSystem.InputControlList`1[TControl]& controls) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/InputSystem.cs:2226)
UnityEngine.InputSystem.InputBindingResolver.AddActionMap (UnityEngine.InputSystem.InputActionMap map) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Actions/InputBindingResolver.cs:571)
UnityEngine.InputSystem.InputActionMap.ResolveBindings () (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Actions/InputActionMap.cs:1169)
UnityEngine.InputSystem.InputActionMap.ResolveBindingsIfNecessary () (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Actions/InputActionMap.cs:1065)
UnityEngine.InputSystem.InputAction.Enable () (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Actions/InputAction.cs:866)
UnityEngine.InputSystem.UI.InputSystemUIInputModule.EnableInputAction (UnityEngine.InputSystem.InputActionReference inputActionReference) (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Plugins/UI/InputSystemUIInputModule.cs:1468)
UnityEngine.InputSystem.UI.InputSystemUIInputModule.EnableAllActions () (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Plugins/UI/InputSystemUIInputModule.cs:1423)
UnityEngine.InputSystem.UI.InputSystemUIInputModule.OnEnable () (at Library/PackageCache/com.unity.inputsystem@1.1.1/InputSystem/Plugins/UI/InputSystemUIInputModule.cs:1378)
Has anyone have any ideas?
Cheers