When the Interactor Force Grab() method was being called it would
first do a simulate touch (to ensure the events were in the right
order). Then it would do the grab, which would make the interactable
physically touch the interactor, which would call the touch logic
again, therefore breaking the untouch logic and meaning the untouched
event would not fire as it thought it was still being touched with
the second touch that had happened.
This fix resolves that by when a simulate touch occurs, the Interactor
then turns off the Interactable CollisionNotifier for a fixed update
frame so the second touch cannot occur after the simulated touch.
When the Interactor Force
Grab()
method was being called it would first do a simulate touch (to ensure the events were in the right order). Then it would do the grab, which would make the interactable physically touch the interactor, which would call the touch logic again, therefore breaking the untouch logic and meaning the untouched event would not fire as it thought it was still being touched with the second touch that had happened.This fix resolves that by when a simulate touch occurs, the Interactor then turns off the Interactable CollisionNotifier for a fixed update frame so the second touch cannot occur after the simulated touch.