This approach doesn't require any material setups and takes a generic type argument where the type has to be an implementation of CameraTransitionEffectBase. The transition is then played using the ...
_is_on_wall_left = body.is_on_wall() and body.get_wall_normal().x > 0 _is_on_wall_right = body.is_on_wall() and body.get_wall_normal().x < 0 ...