Is there a way for event tick to fire an event once if conditions are met

I am constantly checking distance to the player from a point and I would need a way that isn’t too heavy to fire off a event once the condition is true. Problem is currently when it happens event tick will fire it alot of times, i would need to fire it once and only when the condition is met and only reset once its false again.
2)Im not sure but in unitys update function when for instance scripting an event in update that has to do with key pressing it would only perform that action once. So if i have a jump function in unitys update, it would not continuously jump as it is on update but only once. Can someone explain why that is? Why is update on c++ and unity only fired once in some events but not in bp event tick

PS: I know i could use a do once but I was wondering if there was a cleaner way to check if a condition is true in quick intervals and firing off an event based on that.