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