Today, I’m trying to slowly update old VR projects to use Unity XR system and SteamVR. In the past, they were not compatible, so I was stuck on Unity 2019.1.14f for a while. Last year, through a game jam, I learned there was a workaround for it, but I could not figure out how to get it work. So today, I tried again, and this time, it seems to work. I will write more about how to set this up later.
In this article, I just want to remind myself how to get the SteamVR bow interaction working properly when using the Steam Index Knuckle controllers. By default, when we load Interaction Example scene that comes with SteamVR (under SteamVR/InteractionSystem/Samples), the interaction works well with HTC Vive wand controllers. However, when we switch to the default Index Controller, we can pick up the bow fine, but we cannot pull the string to nock the arrow. To fix this issue, we need to change the binding for Index Controller.
Here are the steps:
- In Unity, go to Window -> SteamVR Input.

- If you haven’t create a configuration yet, hit Save and Generate button in SteamVR Input.
- Click on Open Binding UI button.

- In the SteamVR Controller Binding window, under Current Controller, change the controller from Vive Controller to Index Controller


- Edit knuckles_default under Current Binding.

- Make sure Mirror Mode is checked in the middle of the screen.
- Under default tab, edit Left Index Controller trigger button.

- Set Held to Grab Pinch. Confirm by clicking the checkmark.

- Export Binding File, name the configuration something and write description. This configuration will be saved in documents/steamvr/input/exports folder as a json file.
- In the Controller Binding window, make sure to use this new binding setup as current binding.
Now we should be able to pull the bow string and shoot arrows using Index Controller.