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!

  • \$\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 '19 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 '19 at 14:34
  • \$\begingroup\$ If you've solved your problem, please post your solution as an answer. \$\endgroup\$ – DMGregory Jul 10 '19 at 14:35

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.

  • \$\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 '19 at 14:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.