I've created a setup to render my pixel art game at a low resolution while having the UI rendered at a high resolution. The scene tree for that looks like this:
I'm passing the gui_input event from the SceneTexture Node to the SceneViewport
Other gui events for buttons etc. are working correctly but, even though object picking is enabled on both of the viewports, collision objects in the scene do not get their input_event signals triggered.
I tried to recreate a minimal project as an example. I used the 3D Viewport Scaling Demo. I added an Area node with a script to print when left click is pressed on the object through the input_event signal. Playing the 3D scene on its own the signal works, but in the main scene with the viewport it does not.
# cubeArea.gd
extends Area
func _on_Area_input_event(camera, event, position, normal, shape_idx):
if event is InputEventMouseButton:
if event.is_pressed() and event.button_index == BUTTON_LEFT:
print("Object Picked!")