Open Giantbean opened 3 years ago
Do any errors show up? 2.2 is getting pretty old at this point, not sure what the issue would be.
Just the old "KeyNotFoundException: The given key was not present in the dictionary". from issue #596
Are there any updates made after 2.2 specific to Index support that might affect this? I can't update as it breaks to many other dependencies and would require me to completely rebuild a project years in the making.
You shouldn't need to update your unity version to update the steamvr unity plugin. The plugin should be compatible down to 5.4. I'm not sure what references you're referring to that are broken.
Ah I see what your asking. It does however break if I update SteamVR without updating Unity as it throws errors about bad references to Unity.XR.OpenVR
I will run a test and post the error codes.
Update: Assembly has reference to non-existent assembly 'Unity.XR.OpenVR' (Assets/SteamVR/Input/Editor/SteamVR_Input_Editor.asmdef)
Assembly has reference to non-existent assembly 'Unity.XR.OpenVR' (Assets/SteamVR/Editor/SteamVR_Editor.asmdef)
and
Assembly has reference to non-existent assembly 'Unity.XR.OpenVR' (Assets/SteamVR/SteamVR.asmdef)
If I remove those references from the inspector I can only launch the game in WASD mode.
You may need to update or reimport the OpenVR Desktop package from the unity package manager in that scenario
Its V1.0.5 and says it is up to date. I have removed it and reinstalled with no effect.
That's very strange. Can you post your Packages/manifest.json file?
{ "dependencies": { "com.unity.ads": "2.0.8", "com.unity.analytics": "3.2.2", "com.unity.collab-proxy": "1.2.15", "com.unity.package-manager-ui": "2.0.7", "com.unity.postprocessing": "2.3.0", "com.unity.probuilder": "4.2.3", "com.unity.purchasing": "2.0.3", "com.unity.textmeshpro": "1.3.0", "com.unity.xr.openvr.standalone": "1.0.5", "com.unity.modules.ai": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", "com.unity.modules.audio": "1.0.0", "com.unity.modules.cloth": "1.0.0", "com.unity.modules.director": "1.0.0", "com.unity.modules.imageconversion": "1.0.0", "com.unity.modules.imgui": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0", "com.unity.modules.particlesystem": "1.0.0", "com.unity.modules.physics": "1.0.0", "com.unity.modules.physics2d": "1.0.0", "com.unity.modules.screencapture": "1.0.0", "com.unity.modules.terrain": "1.0.0", "com.unity.modules.terrainphysics": "1.0.0", "com.unity.modules.tilemap": "1.0.0", "com.unity.modules.ui": "1.0.0", "com.unity.modules.uielements": "1.0.0", "com.unity.modules.umbra": "1.0.0", "com.unity.modules.unityanalytics": "1.0.0", "com.unity.modules.unitywebrequest": "1.0.0", "com.unity.modules.unitywebrequestassetbundle": "1.0.0", "com.unity.modules.unitywebrequestaudio": "1.0.0", "com.unity.modules.unitywebrequesttexture": "1.0.0", "com.unity.modules.unitywebrequestwww": "1.0.0", "com.unity.modules.vehicles": "1.0.0", "com.unity.modules.video": "1.0.0", "com.unity.modules.vr": "1.0.0", "com.unity.modules.wind": "1.0.0", "com.unity.modules.xr": "1.0.0" } }
Just loaded up a 2018.4 project and am not getting any errors. It doesn't look like it's using the Unity.xr.openvr assembly though, you could try removing just that one again. Possibly upgrading to 2018.4? Maybe try deleting the library folder and reimporting the project?
Thanks I will try that and get back to you in about a week. At the moment I don't have access to the Index Headset.
Strangely teleportation is working in one of 9 scenes now. Is there an issue where teleportation stops working when new scene is loaded? Note, do not destroy on load is NOT checked on the player prefab.
OK It now works in two scenes (If they are set as the starting scene) and not in the rest however if I go back to the working scene it fails to work again? Is there a setting somewhere that I am missing?
Also this only happens with the Valve Index headset and I have no issues with any Vive headset? (Tested with multiple Vive/Pro/Pro Eye/Cosmos and Index users.)
Update: I also just noticed I have a timer that sets a count down when the Vive headset is put on but the Valve headset never starts this timer?
In the bindings and settings Dashboard (Open Binding UI) the Index doesn't show up however when a Vive is connected I have options.
I found the issue!
Using public SteamVR_Action_Boolean headsetOnHead = SteamVR_Input.GetBooleanAction("HeadsetOnHead"); and SteamVR.initializedState != SteamVR.InitializedStates.InitializeSuccess doesn't work with the index (Or I am implementing it wrong)
When I remove this script I can teleport again.
Any idea if this can still be used with the Index or do I need to scrap this code? ` public bool hmdOn; private float time;
[Tooltip("This action lets you know when the player has placed the headset on their head")]
public SteamVR_Action_Boolean headsetOnHead = SteamVR_Input.GetBooleanAction("HeadsetOnHead");
private void Start()
{
//Pause the game until the headset is on
if (SteamVR.initializedState != SteamVR.InitializedStates.InitializeSuccess)
{
Time.timeScale = 1;
}
else
{
Time.timeScale = 0;
}
}
void Update()
{
if (SteamVR.initializedState != SteamVR.InitializedStates.InitializeSuccess)
return;
if (headsetOnHead != null)
{
if (headsetOnHead.GetState(SteamVR_Input_Sources.Head))
{
//Debug.Log("<b>SteamVR Interaction System</b> HMD on Detected");
//Pass a messege to the Step Manager telling it to proceed
hmdOn = true;
CheckRequirementsMet();
//Unpause
if (Time.timeScale == 0)
Time.timeScale = 1;
}
else if (headsetOnHead.GetStateUp(SteamVR_Input_Sources.Head))
{
//Debug.Log("<b>SteamVR Interaction System</b> HMD off head");
hmdOn = false;
//Pause when the headset is removed.
if (Time.timeScale == 1)
Time.timeScale = 0;
}
}
}
public override bool CheckRequirementsMet()
{
return true;
}
}`
PS. This script works with a Vive and Vive Pro headset but no the Index.
I have a scene that can use Vive controllers or HMDs and I can connect the Index controllers which a Vive headset and everything works fine. As soon as I hook up a Valve Index HMD the teleport floor fails to work. When I press the teleport button I get the teleport arch and ring but the floor grid never shows up. It shows as active in the Unity inspector but is not visible in game and no teleportation is possible. No errors are given and other functions work fine just teleportation is gone.
This is a build in Unity 2018.3.9 with Steam VR 2.2 Updating to 2.6.1 breaks the Unity.XR.OpenVR references, updating Unity to 2019.4.3 got rid of the three XR.OpenVR errors however the app no longer launches in VR and will only open as a keyboard and mouse application. Further updating to later 2019 or 2020 versions is likely to break more dependencies on tools in use making it a poor solution. So is there a way to add Index support to older projects/builds? Something in the new teleport script that I can add to an old script and make it recognize the index headset?