private IEnumerator AttachToolsToHands(Transform[] toolObjects, bool isRightHand) { HandsManager handsManagerObj = null; while ((handsManagerObj = HandsManager.Instance) == null || !handsManagerObj.IsInitialized()) { yield return(null); } // create set of tools per hand to be safe HashSet <Transform> toolObjectSet = new HashSet <Transform>(); foreach (Transform toolTransform in toolObjects) { toolObjectSet.Add(toolTransform.transform); } foreach (Transform toolObject in toolObjectSet) { OVRSkeleton handSkeletonToAttachTo = isRightHand ? handsManagerObj.RightHandSkeleton : handsManagerObj.LeftHandSkeleton; while (handSkeletonToAttachTo == null || handSkeletonToAttachTo.Bones == null) { yield return(null); } AttachToolToHandTransform(toolObject, isRightHand); } }