public static int CollisionCheck(Hitbox hitbox, Hurtbox[] hurtboxSet)
        {
            var colliders = ArrayPool <Collider> .Shared.Rent(256);

            var collisionCount = CheckColliders(hitbox, colliders);
            int hurtboxCount   = 0;

            DedupCheck.Clear();
            for (int i = 0; i < collisionCount && hurtboxCount < hurtboxSet.Length; i++)
            {
                Assert.IsNotNull(colliders[i]);
                var hurtbox = colliders[i].GetComponent <Hurtbox>();
                if (IsValid(hurtbox))
                {
                    hurtboxSet[hurtboxCount++] = hurtbox;
                }
            }
            ArrayPool <Collider> .Shared.Return(colliders);

            return(hurtboxCount);
        }
        static int CheckColliders(Hitbox hitbox, Collider[] colliders)
        {
            var layerMask = Config.Get <PhysicsConfig>().HurtboxLayerMask;

            return(Physics.OverlapSphereNonAlloc(hitbox.Center, hitbox.Radius, colliders, layerMask, QueryTriggerInteraction.Collide));
        }