private static void UpdateBones(Transform hitbox, IHitBoxTransformProvider transformProvider)
        {
            for (int i = 0; i < hitbox.childCount; i++)
            {
                var       child          = hitbox.GetChild(i);
                Transform modelTransform = transformProvider.GetTransform(child.name);
                if (modelTransform != null)
                {
                    child.localPosition = modelTransform.transform.localPosition;
                    child.localRotation = modelTransform.transform.localRotation;
                }
                else
                {
                    _logger.DebugFormat("can't find hitbox node [{0}] in model {1}", child.name, transformProvider);
                }

                UpdateBones(child, transformProvider);
            }
        }
 public static void Update(Transform hitbox, IHitBoxTransformProvider transformProvider)
 {
     UpdateBones(hitbox.GetChild(0), transformProvider);
     hitbox.transform.position = transformProvider.RootPosition;
     hitbox.transform.rotation = transformProvider.RootRotation;
 }