@@ -2871,26 +2871,27 @@ public IEnumerator UI_CanOperateMultiplayerUILocallyUsingGamepads()
28712871
28722872 [ UnityTest ]
28732873 [ Category ( "UI" ) ]
2874- public IEnumerator UI_CanDriveUIFromGamepad ( )
2874+
2875+ [ TestCase ( "Gamepad" , ExpectedResult = 1 ) ]
2876+ [ TestCase ( "WebGLGamepad" , ExpectedResult = 1 ) ]
2877+ public IEnumerator UI_CanDriveUIFromGamepad ( string deviceLayout )
28752878 {
2876- var gamepad = InputSystem . AddDevice < Gamepad > ( ) ;
2879+ var gamepad = ( Gamepad ) InputSystem . AddDevice ( deviceLayout ) ;
28772880
28782881 var scene = CreateTestUI ( ) ;
28792882
2880- var asset = ScriptableObject . CreateInstance < InputActionAsset > ( ) ;
2881- var map = asset . AddActionMap ( "map" ) ;
2882- var moveAction = map . AddAction ( "move" , type : InputActionType . PassThrough , binding : "<Gamepad>/*stick" ) ;
2883- var submitAction = map . AddAction ( "submit" , type : InputActionType . PassThrough , binding : "<Gamepad>/buttonSouth" ) ;
2884- var cancelAction = map . AddAction ( "cancel" , type : InputActionType . PassThrough , binding : "<Gamepad>/buttonEast" ) ;
2883+ var actions = new DefaultInputActions ( ) ;
28852884
2886- scene . uiModule . move = InputActionReference . Create ( moveAction ) ;
2887- scene . uiModule . submit = InputActionReference . Create ( submitAction ) ;
2888- scene . uiModule . cancel = InputActionReference . Create ( cancelAction ) ;
2885+ scene . uiModule . move = InputActionReference . Create ( actions . UI . Navigate ) ;
2886+ scene . uiModule . submit = InputActionReference . Create ( actions . UI . Submit ) ;
2887+ scene . uiModule . cancel = InputActionReference . Create ( actions . UI . Cancel ) ;
28892888
28902889 scene . uiModule . moveRepeatDelay = 0.1f ;
28912890 scene . uiModule . moveRepeatRate = 0.1f ;
28922891
2893- map . Enable ( ) ;
2892+ actions . Enable ( ) ;
2893+ Assert . That ( actions . UI . enabled , Is . True ) ;
2894+ Assert . That ( actions . Player . enabled , Is . True ) ;
28942895
28952896 yield return null ;
28962897
@@ -2913,7 +2914,7 @@ public IEnumerator UI_CanDriveUIFromGamepad()
29132914 OneEvent ( "type" , EventType . Move ) ,
29142915 OneEvent ( "device" , gamepad ) ,
29152916 OneEvent ( "moveDir" , MoveDirection . Right ) ,
2916- OneEvent ( "moveVector" , gamepad . leftStick . ReadValue ( ) ) ) ) ;
2917+ OneEvent ( "moveVector" , new Vector2 ( 1.0f , 0.0f ) ) ) ) ;
29172918 Assert . That ( scene . rightChildReceiver . events , Is . Empty ) ;
29182919
29192920#if UNITY_INPUT_SYSTEM_INPUT_MODULE_NAVIGATION_DEVICE_TYPE
@@ -2932,7 +2933,7 @@ public IEnumerator UI_CanDriveUIFromGamepad()
29322933 OneEvent ( "type" , EventType . Move ) ,
29332934 OneEvent ( "device" , gamepad ) ,
29342935 OneEvent ( "moveDir" , MoveDirection . Left ) ,
2935- OneEvent ( "moveVector" , gamepad . leftStick . ReadValue ( ) ) ) ) ;
2936+ OneEvent ( "moveVector" , new Vector2 ( - 1.0f , 0.0f ) ) ) ) ;
29362937 Assert . That ( scene . rightChildReceiver . events , Is . Empty ) ;
29372938
29382939 scene . leftChildReceiver . events . Clear ( ) ;
@@ -2946,7 +2947,7 @@ public IEnumerator UI_CanDriveUIFromGamepad()
29462947 OneEvent ( "type" , EventType . Move ) ,
29472948 OneEvent ( "device" , gamepad ) ,
29482949 OneEvent ( "moveDir" , MoveDirection . Up ) ,
2949- OneEvent ( "moveVector" , gamepad . leftStick . ReadValue ( ) ) ) ) ;
2950+ OneEvent ( "moveVector" , new Vector2 ( 0.0f , 1.0f ) ) ) ) ;
29502951 Assert . That ( scene . rightChildReceiver . events , Is . Empty ) ;
29512952
29522953 scene . leftChildReceiver . events . Clear ( ) ;
@@ -2960,7 +2961,7 @@ public IEnumerator UI_CanDriveUIFromGamepad()
29602961 OneEvent ( "type" , EventType . Move ) ,
29612962 OneEvent ( "device" , gamepad ) ,
29622963 OneEvent ( "moveDir" , MoveDirection . Down ) ,
2963- OneEvent ( "moveVector" , gamepad . leftStick . ReadValue ( ) ) ) ) ;
2964+ OneEvent ( "moveVector" , new Vector2 ( 0.0f , - 1.0f ) ) ) ) ;
29642965 Assert . That ( scene . rightChildReceiver . events , Is . Empty ) ;
29652966
29662967 scene . leftChildReceiver . events . Clear ( ) ;
@@ -2975,7 +2976,7 @@ public IEnumerator UI_CanDriveUIFromGamepad()
29752976 OneEvent ( "type" , EventType . Move ) ,
29762977 OneEvent ( "device" , gamepad ) ,
29772978 OneEvent ( "moveDir" , MoveDirection . Down ) ,
2978- OneEvent ( "moveVector" , gamepad . leftStick . ReadValue ( ) ) ) ) ;
2979+ OneEvent ( "moveVector" , new Vector2 ( 0.0f , - 1.0f ) ) ) ) ;
29792980
29802981 scene . leftChildReceiver . events . Clear ( ) ;
29812982
@@ -2989,7 +2990,7 @@ public IEnumerator UI_CanDriveUIFromGamepad()
29892990 OneEvent ( "type" , EventType . Move ) ,
29902991 OneEvent ( "device" , gamepad ) ,
29912992 OneEvent ( "moveDir" , MoveDirection . Down ) ,
2992- OneEvent ( "moveVector" , gamepad . leftStick . ReadValue ( ) ) ) ) ;
2993+ OneEvent ( "moveVector" , new Vector2 ( 0.0f , - 1.0f ) ) ) ) ;
29932994
29942995 scene . leftChildReceiver . events . Clear ( ) ;
29952996
@@ -3031,6 +3032,10 @@ public IEnumerator UI_CanDriveUIFromGamepad()
30313032
30323033 Assert . That ( scene . leftChildReceiver . events , Is . Empty ) ;
30333034 Assert . That ( scene . rightChildReceiver . events , Is . Empty ) ;
3035+
3036+ actions . Disable ( ) ;
3037+ Assert . That ( actions . UI . enabled , Is . False ) ;
3038+ Assert . That ( actions . Player . enabled , Is . False ) ;
30343039 }
30353040
30363041 [ Test ]
0 commit comments