Skip to content

Conversation

@Gibibit
Copy link

@Gibibit Gibibit commented Apr 11, 2023

Justification

In order to display your own controller glyphs when using Steam Input, you need to be able to retrieve the action origins. Currently you can only display the default Steam glyphs which are fine as a fallback or default, but not customizable.

In addition, Valve recommends you keep retrieving the action origins to check whether they have changed. When this happens you have to update your cached glyphs. Without these added calls that's not possible to do.

Unit Test

I attempted to write a unit test to test these new functions but... Steam Input just doesn't work when it's not running in a standalone proces I think. The Steam Input unit tests that are already in the project don't really test anything either. Did manage to test it in a built Unity project. Here's a gist of my attempts if anyone knows how to get it to work: https://gist.github.com/Gibibit/d32af10629986a4b3737c0d1117e5345 . Make sure to update the app id to something that has a locally configured controller in your steam install /controller_config dir.

Please let me know if there's any issues with the PR or code, I'll be happy to clean it up. I added some comments to existing struct fields as well. If those are unwanted I'll revert it.

Gibibit added 4 commits April 7, 2023 10:50
…mentation for retrieving both analog and digital glyphs using information from the official docs.
…ngly to do this automatically in the future

InputActionOrigin is required on the user side so the user can check whether the action origin has changed. This is cheaper than continuously requesting the action glyph. In addition the user requires the action origin to be able to supply their own icons.
…nt confusiong between the Pressed and Active values
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant