Unity's way of packaging dependencies/plugins via git Package Manager is a great way to keep source code separate from package code. https://docs.unity3d.com/Manual/upm-git.html
There are only three changes to SteamVR neccessary to work with this approach:
Do not create files inside PackageCache folder (where the downloaded packages belong to)
Current behaviour
I put the SteamVR unitypackage files in my own repository and added a package.json file. In my Unity project, I added the reference to this repository in my manifest.json.
Now, if SteamVR is integrated into a Unity project via Package Manager and its git capabilities, it fails with errors as it wants to create folders on top of PackageCache/SteamVR (like PackageCache/SteamVR_Input). The SteamVR plugin itself isn't capable of handling this new behaviour and should look inside /Assets/SteamVR_Input instead.
962 - Three years ago, someone already mentioned the package.json way. It got declined as it wasn't Unity standard back in the days. Now the dependency way is standard.
SteamVR's included bundle of OpenVR already leverages package.json (Once .tar.gz is uncompressed, you can put it on a git repository and reference it in manifest.json for Package Manager)
It would be great if we can have a working version to integrate SteamVR into Package Manager for better usability of the plugin.
Following up on #962
Unity's way of packaging dependencies/plugins via git Package Manager is a great way to keep source code separate from package code. https://docs.unity3d.com/Manual/upm-git.html There are only three changes to SteamVR neccessary to work with this approach:
Current behaviour
I put the SteamVR unitypackage files in my own repository and added a package.json file. In my Unity project, I added the reference to this repository in my manifest.json. Now, if SteamVR is integrated into a Unity project via Package Manager and its git capabilities, it fails with errors as it wants to create folders on top of PackageCache/SteamVR (like PackageCache/SteamVR_Input). The SteamVR plugin itself isn't capable of handling this new behaviour and should look inside /Assets/SteamVR_Input instead.
Expected behaviour
SteamVR plugin should have a package.json file and slightly altered file creation logic to become usable via Package Managers git capabilities.
Further references
People on this repository already mentioned a few workarounds, but I couldn't get it to run due to inconsitencies:
962 - Three years ago, someone already mentioned the package.json way. It got declined as it wasn't Unity standard back in the days. Now the dependency way is standard.
It would be great if we can have a working version to integrate SteamVR into Package Manager for better usability of the plugin.