Search Issue Tracker

Won't Fix

Votes

8

Found in [Package]

Issue ID

1280203

Regression

No

[Input] Xbox Controller input not detected while Steamworks is running

Package: Input System

-

Xbox One controller input not detected while Steamworks is running

1. What happened
Input from the Xbox One controller is not detected while the Steamworks API is in use. After shutting down Steam, the input is detectable again.

2. How we can reproduce it using the example you attached
Open Scenes/SampleScene and enter play mode while Steam is NOT running. Input from the joystick (Move) and right trigger (Shoot) will be detected and the console will print the current values of the input. Run Steam and enter play mode again. This time, input will not be detected and nothing will print in the console.

Easy Repro Steps:
- Switch build platform to PC, Mac and Linux and start Steam then enter play mode in the editor. Notice how fire (Mouse Left Click) prints to the log but RT (Right Trigger) on Xbox Controller doesn't
- Switch to an unsupported player (such as Xbox) to easily disable Steamworks then enter play mode, notice how Mouse Left Click and Controller RT both print 'Fire' in the Console Log

UPDATE: This isn't a Unity bug but instead is behavior from the Steam platform library. It impacts both the "old" and "new" Input systems.

For more detailed information, please see the discussion thread of the Steamworks issue on GitHub: https://github.com/rlabrecque/Steamworks.NET/issues/380

  1. Resolution Note:

    This issue comes from the Steam platform libraries when the app's Input isn't configured properly and isn't a bug in either Unity nor Steamworks.

    According to Valve:

    The problem is that when you initialize the Steamworks API, Steam probably doesn't know what kind of input you need. If you don't have an appID, it's giving you the desktop configuration, which defaults to disabling controller input or mapping it to keyboard and mouse. If you're using steam_appid.txt to specify your appID and have 480 in there, you're telling Steam that your application is SpaceWar, which actually has Steam Input mappings and controller input is redirected to Steam Input instead of XInput.

    If you have a real Steam game, then you should make sure you're specifying that appID in steam_appid.txt, and then go to the Steam Input settings on the partner page for your app and select the "Generic Gamepad" template.

    If you're just doing prototyping and don't have a Steam appID yet, you can put 1456390 in steam_appid.txt, which is an appID set up for game controller testing.

Comments (11)

  1. DanStreaman

    Oct 19, 2020 23:16

    Same problem here. This is a blocking issue and makes it impossible for us to use the new input system.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.