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);
            }
        }