Pārlūkot izejas kodu

Add yield with multiple arguments example to GDSCript Basics

HaSa1002 4 gadi atpakaļ
vecāks
revīzija
5df18b894f
1 mainītis faili ar 18 papildinājumiem un 0 dzēšanām
  1. 18 0
      getting_started/scripting/gdscript/gdscript_basics.rst

+ 18 - 0
getting_started/scripting/gdscript/gdscript_basics.rst

@@ -1591,6 +1591,24 @@ You can also get the signal's argument once it's emitted by an object:
     # Wait for when any node is added to the scene tree.
     var node = yield(get_tree(), "node_added")
 
+If there are more than one argument ``yield`` returns an array containing
+the arguments:
+
+::
+
+    signal done(input, processed)
+    func process_input(input):
+        print("Processing initialized")
+        yield(get_tree(), "idle_frame")
+        print("Waiting")
+        yield(get_tree(), "idle_frame")
+        emit_signal(input, "Processed " + input)
+    
+    func _ready():
+        process_input("Test") # Prints: Processing initialized
+        var data = yield(self, "done") # Prints: waiting
+        print(data[1]) # Prints: Processed Test
+
 If you're unsure whether a function may yield or not, or whether it may yield
 multiple times, you can yield to the ``completed`` signal conditionally: