Unfortunately, there's a bug that doesn't allow ViewportContainer to forward unhandled input to its viewport children and only works for
_input() right now.
As a workaround, you can try to forward the
_unhandled_input() manually to viewport by extending
ViewportContainer like so:
This will allow to forward any unhandled input received by
Viewport, hence to your custom camera node.
See the relevant issue pertaining to your question.