ValveSoftware / unity-xr-plugin

OpenVR plugin for Unity's XR API
BSD 3-Clause "New" or "Revised" License
306 stars 64 forks source link

This is not how any of this works.... #46

Closed InnerScript closed 3 years ago

InnerScript commented 3 years ago

Downloading an Installation: Here is what a developer expects from a package. It is a folder, with a manifest, and all required files in it. Here's a link for your reference.

What a developer does not want is a package that just has a script that goes and downloads another package and maintains it's own versions. That takes the whole point of the Package Manager and letting the developer manage their own versions, and puts it into your hands, not ours.

Through this beta period, we can manage packages locally just fine. Give us a zip, with everything in it and an organized package manifest as it's intended. When the beta is over, we expect that Unity will be managing the versions through the Unity official registry. Not your server.

Input: The input instructions are to install the SteamVR package.

No. Just, no.

The Unity XR system is to get rid of all of this junk and process. The greater majority of the files in that package is bows and arrows, examples and graphics and sounds and everything that the Unity XR Plugin system was designed to avoid. I can't tell what's necessary and what's junk that just pollutes my project.

Please, just send the input signals to the Unity XR. Take the signals from the Unity XR. - That's it. I know that's a lot of #therestoftheowl, but that's what we as developers need. Interop with what Unity provided, and if there's not an API there, work with Unity to update XR in an elegant and generalized way. Microsoft, Oculus, and even Magic Leap can make an XR input package. You guys have a talented team, just don't fight the current.

Crashes and Bugs: Installing the SteamVR package (for the 30 seconds I was curious before deleting it and all the project pollution) and pressing Play Unity flat out crashes. No error. No warning. Doesn't even have time to write anything to the editor logfile. Just... poof.

Then a full project rollback.

Installing the UnityXR package alone, to just try it out. Tracking works, but glitches every second or so, headset and controllers both. Input sadly doesn't work, or mapped to something incorrect for basic buttons such as grip and trigger.

Also important to note that in my version 2020.1, every time I restart the editor there's an error that forces me to reset the UI layout. Likely this has to do with some custom layout drawing the plugin is trying to do, because while OpenVR appears in the sub-list of installed platforms, it's no longer in the check box list of supported platforms to chose after the first crash.

Summary:

zite commented 3 years ago

While we appreciate your feedback the major points of what you're asking for are not possible. I'll try to address each point though so you can understand our direction.

Work with forward-looking Unity conventions, not against Unity XR requires a style of input (direct device access) that our runtime is not compatible with. Along with many other industry partners (including the ones you've mentioned) we've chosen OpenXR as the path forward with our runtime. For more information see this post: https://steamcommunity.com/games/250820/announcements/detail/2522527900755718764

Make future updates a zip file as a correct and complete package You're welcome to download the zip from here or npmjs, it is correct and complete.

Map input to XR rather than forcing an interaction system on us I believe you're talking about actions here. Action based systems resolve a lot of issues with supporting multiple platforms and devices as unity has recognized with their input system. OpenXR also follows this pattern. For more information see this post about SteamVR Input: https://steamcommunity.com/games/250820/announcements/detail/3809361199426010680 If you're not talking about actions, I'm not sure what you mean. You're welcome to create your own action sets, actions, and bindings. Included with the SteamVR Unity Plugin is a scene called Simple Sample that does not use the interaction system.

Remove all the junk, use existing folder structures as is convention Lots of developers make use of the interaction system, so I think you more mean this next bit:

Package SteamVR as separate packages in discreet parts: Steam Integration, OpenVR Interaction, Interaction Examples, etc The SteamVR Unity Plugin is a bit of an unconventional project at this point as it was started before XR was a thing. As we add to our unity packages we will make an effort to separate out pieces so developers aren't forced to add large packages to their project.

Crashes and bugs Crashes and bugs are not to be expected. If you have a specific crash you can give us information on please open a new issue. Unfortunately Unity crashing and not reporting an error is outside our control. However there are generally crash reports or editor logs that can help us determine the cause.

For more information on this plugin and input see this issue: https://github.com/ValveSoftware/unity-xr-plugin/issues/16

halfpasttense commented 3 years ago

Unity XR requires a style of input (direct device access) that our runtime is not compatible with.

Funny how it was perfectly compatible the first few versions of this XR Plugin and it worked perfectly fine, then it all of a sudden became incompatible?