Can't find child objects of Vive controllers?

I’m using a Vive, with the official SteamVR plugin. Some objects are childs of the controller object, to make them attached to the controller, however since they’re used for gameplay I’m trying to find them from another script using GameObject.FindGameObjectWithTag() in the Start() function, only this doesn’t find the objects.

I think this may be caused by the controllers being inactive when they’re not found, and them possibly not being active/found in the first couple frames in the game, though I’m not sure. What would be the best possible way to find these objects from the other script?

I’ve thought about using a getchild function, but there are objects in other objects in other objects in the controller, and it feels like a way too hard coded way to just get the child of a child of a child. Another solution could be making them serializedfields and then referencing them myself from the editor, but that also seems like it’s more work than it should be, as it used to just work with FindGameObjectWithTag().

If you are using the steamvr plugin they should be there in the Player Prefab as hand1 and hand2. You could then assign their transforms to a public property on your class. Otherwise perhaps use an IEnumerator for your Start return value and return yield wait until the controllers show up.