俺もまだ初心者だから最適解かわからないけど
BeginOverlapの後にDo onceで確実に1回きりの処理にして
EndOverlapしたらDo onceのResetに繋げるとかは?