Defines a raycast interaction suitable to use at both short and long ranges.
The possibility of interaction is triggered by the intersection between the RayInteractor's raycast and the interactable's Surface. Consequences of interaction can be controlled by setting the interactable's movement provider (through the Unity Editor or via InjectOptionalMovementProvider(IMovementProvider)), by observing the interactable's IInteractable events (for example, using an InteractableUnityEventWrapper), or by handling the PointerEvents emitted during interaction (for example, by forwarding them to an IPointableCanvas).