在我的Godot 3项目中,我具有以下层次结构
- 游戏(Node2D)
- GameViewportContainer(ViewportContainer)
- 视口
- Camera2D
- UIViewportContainer
- 视口
此层次结构可用于在调整屏幕大小时缩放(像素艺术)游戏视口,并将UI保持在标准分辨率。
我的问题是,如何在 $ GameViewportContainer / Viewport 中向上(或向下)鼠标输入。我在该节点(包含精灵的node2d)上实例了一个孩子,并附加了检测左键单击的脚本。由于某些原因,即使在任何地方(即使在根节点中)进行实例化,输入也将无法工作。
实例节点上的代码-连接到孩子的 input_event 信号:
func _on_UnitBuilder_input_event(viewport, event, shape_idx):
if (event is InputEventMouseButton && event.pressed && event.button_index == BUTTON_LEFT):
print("clicked")
我不确定视口是否由于这种配置而感到困惑?我已经在Node2D根节点中直接在另一个场景中实例化了这个孩子,效果很好。我怀疑问题在于视口应该传递孩子的输入,反之亦然,但是我不确定这是自动的还是怎么做的。
非常感谢