节点之间的通信:信号(Signals)
1. 什么是信号(Signal)?
信号就是一种消息通知机制, 允许一个节点在发生某些事情时,通知其他节点。
✅ 信号是松耦合的,发送者不需要知道接收者是谁,只负责广播。
🧱 理解比喻
想象:
- 一个按钮节点就像一个广播站。
- 当按钮被按下时,它发出广播:「我被按了!」
- 其他节点(比如玩家角色)只要订阅了这个广播,就能立刻收到通知,并采取行动(比如跳起来)。
2. 为什么需要信号?
-
传统直接调用函数:
- A节点必须知道B节点存在 ➔ 紧耦合 ➔ 扩展困难
使用信号:
- A节点只发广播,不管有没有人接收 ➔ 松耦合 ➔ 结构清晰、维护容易
✅ 比如:玩家靠近门口,Area2D只需要广播「有人进来了」,不用关心是谁接收。