0
\$\begingroup\$

I'm developing an application using SteamVR in Unity. When running my app, the console keeps getting flooded with hundreds of instances of this error:

NullReferenceException: Object reference not set to an instance of an object
Valve.VR.SteamVR_Action_Boolean.GetState (Valve.VR.SteamVR_Input_Sources inputSource) (at Assets/SteamVR/Input/SteamVR_Action_Boolean.cs:94)
Valve.VR.SteamVR_Skeleton_Poser+PoseBlendingBehaviour.Update (System.Single deltaTime, Valve.VR.SteamVR_Input_Sources inputSource) (at Assets/SteamVR/Input/SteamVR_Skeleton_Poser.cs:420)
Valve.VR.SteamVR_Skeleton_Poser.ApplyBlenderBehaviours (Valve.VR.SteamVR_Action_Skeleton skeletonAction, Valve.VR.SteamVR_Input_Sources inputSource, Valve.VR.SteamVR_Skeleton_PoseSnapshot snapshot) (at Assets/SteamVR/Input/SteamVR_Skeleton_Poser.cs:230)
Valve.VR.SteamVR_Skeleton_Poser.UpdatePose (Valve.VR.SteamVR_Action_Skeleton skeletonAction, Valve.VR.SteamVR_Input_Sources inputSource) (at Assets/SteamVR/Input/SteamVR_Skeleton_Poser.cs:212)
Valve.VR.SteamVR_Skeleton_Poser.GetBlendedPose (Valve.VR.SteamVR_Action_Skeleton skeletonAction, Valve.VR.SteamVR_Input_Sources handType) (at Assets/SteamVR/Input/SteamVR_Skeleton_Poser.cs:177)
Valve.VR.SteamVR_Behaviour_Skeleton.CopyBonePositions (UnityEngine.Vector3[] positionBuffer) (at Assets/SteamVR/Input/SteamVR_Behaviour_Skeleton.cs:784)
Valve.VR.SteamVR_Behaviour_Skeleton.UpdateSkeletonTransforms () (at Assets/SteamVR/Input/SteamVR_Behaviour_Skeleton.cs:619)
Valve.VR.SteamVR_Behaviour_Skeleton.UpdateSkeleton () (at Assets/SteamVR/Input/SteamVR_Behaviour_Skeleton.cs:382)
Valve.VR.SteamVR_Behaviour_Skeleton.SteamVR_Input_OnSkeletonsUpdated (System.Boolean skipSendingEvents) (at Assets/SteamVR/Input/SteamVR_Behaviour_Skeleton.cs:358)
Valve.VR.SteamVR_Input.UpdateSkeletonActions (System.Boolean skipSendingEvents) (at Assets/SteamVR/Input/SteamVR_Input.cs:360)
Valve.VR.SteamVR_Input.UpdateVisualActions (System.Boolean skipStateAndEventUpdates) (at Assets/SteamVR/Input/SteamVR_Input.cs:320)
Valve.VR.SteamVR_Input.OnPreCull () (at Assets/SteamVR/Input/SteamVR_Input.cs:303)
Valve.VR.SteamVR_Behaviour.PreCull () (at Assets/SteamVR/Scripts/SteamVR_Behaviour.cs:219)
Valve.VR.SteamVR_Behaviour.OnBeforeRender () (at Assets/SteamVR/Scripts/SteamVR_Behaviour.cs:189)
UnityEngine.BeforeRenderHelper.Invoke () (at C:/buildslave/unity/build/Runtime/Export/BeforeRenderHelper.cs:105)
UnityEngine.Application.InvokeOnBeforeRender () (at C:/buildslave/unity/build/Runtime/Export/Application.cs:324)

I do not understand the error. I have my project's SteamVR input settings configured to their defaults, and the skeleton interaction on the HTC Vive controllers act normally.

What is this error trying to tell me and how can I fix the issue?

Thank you for your help!

\$\endgroup\$
3
  • \$\begingroup\$ Have you looked at what the code does on line 94 of Assets/SteamVR/Input/SteamVR_Action_Boolean.cs? That's your first clue toward fixing the issue, so try to determine what value being referenced on that line is null. \$\endgroup\$
    – DMGregory
    Jul 9, 2019 at 23:40
  • \$\begingroup\$ I looked in there, and it pointed me to the script that was causing the errors. Thanks 👍🏻 \$\endgroup\$
    – Microbob
    Jul 10, 2019 at 14:34
  • \$\begingroup\$ If you've solved your problem, please post your solution as an answer. \$\endgroup\$
    – DMGregory
    Jul 10, 2019 at 14:35

1 Answer 1

0
\$\begingroup\$

This means that your code is trying to access an object that does not exist (did not use new). This either means you need to create the object before you do or that you need to check to see if the object exists before calling those functions.

\$\endgroup\$
1
  • \$\begingroup\$ Thanks for the insight! It turns out I was doing some funky GameObject references that weren’t attached to any monobehavior scripts. I fixed it and so far i haven’t gotten any issues. 🤞🏻 \$\endgroup\$
    – Microbob
    Jul 10, 2019 at 14:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .