/// <summary>
 /// Returns only the bones with the specified JointObject.
 /// </summary>
 public static Transform[] GetBonesOfType(JointObject type, Transform[] bones)
 {
     return bones.Where(b => (b != null && GetType(b.name) == type)).ToArray();
 }
 /// <summary>
 /// Returns only the joints with the specified Side.
 /// </summary>
 /// <param name="jointSide">The side of the joint</param>
 /// <param name="joints">The Transforms where to search</param>
 /// <returns>A list of matching Transforms</returns>
 public static Transform[] GetJointsOfSide(BodySide jointSide, Transform[] joints)
 {
     return joints.Where(j => (j != null && GetSideOfJointName(j.name) == jointSide)).ToArray();
 }
        private Transform FindRigTransformByName(string rigName, Transform[] transforms)
        {
            var targetTransform = transforms.Where((t) => t.name == rigName).FirstOrDefault();

            if (targetTransform != null)
            {
                var pos = targetTransform.localPosition;
                var rot = targetTransform.localRotation;
                Util.Log("Bone rig " + rigName + " found! Pos: " + pos.x + ", " + pos.y + ", " + pos.z + "  Rot: " + rot.x + ", " + rot.y + ", " + rot.z + ", " + rot.w);
            }
            else
            {
                Util.Log("Bone rig " + rigName + " not found...");
            }
            return targetTransform;
        }