#+title: Section 03 - Lesson 11, 12 | Signals, Custom Signals #+HTML_HEAD: * Links - [[../../toc.org][TOC - Godot Notes]] - [[https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginners/learn/lecture/45070477#announcements][S03:L22.11 - Signals]] - [[https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginners/learn/lecture/45070479#announcements][S03:L23.12 - Custom Signals]] * Notes ** Signals - messaging system - way of communicating between nodes *** connect basics - means of connecting - ide - code - the node giving the signal has a list of everyone that connected *** connecting via ide 1. select Node panel on leftside, and then select the approrpiate signal - #+ATTR_HTML: :width 600px [[file:../../_share/media/albert/img/section03/S03_L11_EX01.png]] 2. double click the selected filter - options available: - from signal - connect to script - receiver method - you can also click on "Pick" next to receiver method so that you can choose a different method that already exists 3. click connect and the boilerplate code will appear in the script you had selected in the signal creation pane above in (2) - if you look at the node pane on the right and scroll to the signal, you'll see a green indicator showing that you have connected that signal (to something) - #+ATTR_HTML: :width 300px [[file:../../_share/media/albert/img/section03/S03_L11_EX02.png]] - similarly, you can see a green icon by the function in the code editor - #+ATTR_HTML: :width 600px [[file:../../_share/media/albert/img/section03/S03_L11_EX03.png]] ** Custom Signals *** declare the signal to create a signal, use the following format: #+BEGIN_SRC godot signal name_of_signal #+END_SRC *** activate the signal #+BEGIN_SRC godot name_of_signal.emit() #+END_SRC *** register to signal - go to the scene you want to attach the signal to - pick the node - the signal should be available under Inspector->Node->Signals - connect the signal, and give the function a name you want, this will be your receiver function - if you want to attach another node to the same receiver function, use "pick" when connecting the signal - #+ATTR_HTML: :width 700px [[file:../../_share/media/albert/img/section03/S03_L12_EX01.png]] - if you have more than one node connected to a receiver function you can see which are connected by clicking on the green icon next to the receiver function - #+ATTR_HTML: :width 600px [[file:../../_share/media/albert/img/section03/S03_L12_EX02.png]]