It should not, as it is colliding with a OnHit with the ground and not an OnBeginOverlap, that is because of the collision channels and if they are blocking or overlapping, this may help you understanding more about collisions in UE Collision Overview | Unreal Engine 4.27 Documentation
What I meant is this, without needing to search for every apple every time the hunter overlaps with something.
I defined Grab Apple as this:
Additionally, if you want to check if an Array is empty, there is no need to check for all the elements that are inside that array.
You could use:
This checks if the first element is valid, if it is you know that the array is not empty, additionally you could do this:
This checks the number of elements inside the array, so that if it is greater than 0, then it is not empty.
To check if all the elements in an array are valid, it would be something like this:
Where it checks for all actors of class Apple in the world, then for each of them found, it will check if they are valid or not, and if it founds one apple that is not valid, it will interrupt the for each iterator.