Refactor to a more encapsulated package
See original GitHub issueHey Riley,
I’m currently looking more seriously into adding SteamInput support to InControl. To do that I would need to add a dependency on Steamworks.NET but that is currently problematic.
I’d like to suggest that Steamworks.NET be restructured to be more neatly and easily dropped into a project, or pulled in through the Package Manager.
I’d be happy to help with this process, and even do most of it if you don’t have time!
Here’s what I recommend:
- Move files around into the file structure that Unity packages have standardized on:
Steamworks (root folder)
- Editor (current Editor/Steamworks.NET contents goes here)
- Runtime (current Plugins/Steamworks.NET contents goes here)
- Plugins (rest of plugins goes in here)
-
Add assembly definitions in Runtime (Steamworks) and Editor (Steamworks.Editor) above. Plugins does not get an assembly definition. This allows setting a reference in InControl’s assembly definition along with a preprocessor that gets defined when the package is present.
-
Add a package definition which would allow Steamworks.NET to be more easily installed via tarball or git.
-
Fix the native plugins metadata. Currently they have a few errors and have to be manually fixed, sometimes with a bunch of Unity restarts involved. For InControl, I have a development editor script that sets up the plugins properly. I run this in each version of Unity before I package and submit for that Unity version to the Asset Store. Older versions of Unity have slightly different import configurations (and even bugs!) that aren’t compatible with later versions. But it would be good to focus on setting it correctly for 2019 LTS onwards (and going forward, set for maybe the last LTS or if there’s a serious conflict, for latest release Unity).
The Standalone folder throws a bit of a wrench in the works—I’m not actually sure if it’s safe to just have that hanging out in the package folder, but I can test that. Worst case, that folder could just be a ZIP archive since its contents isn’t really super important to version control in the sense of line by line code, but only as a whole.
Issue Analytics
- State:
- Created 3 years ago
- Comments:16 (6 by maintainers)
Top GitHub Comments
Steamworks.NET can now be installed as a Unity package 🎉
Unity Package path:
https://github.com/rlabrecque/Steamworks.NET.git?path=/com.rlabrecque.steamworks.net
Validation remains.
Please update the documentation to indicate the availability from the Package Manager.