UnigineScript
Core Library
Engine Library
Node-Related Classes
GUI-Related Classes
Plugins Library
High-Level Systems
Samples
Usage Examples
C++ API
API Reference
Integration Samples
Usage Examples
C++ Plugins
Migration
Migrating to UNIGINE 2.0
C++ API Migration
Migrating from UNIGINE 2.0 to UNIGINE 2.1

Yield

The yield keyword is used to alter a starting point of a function for future calls. At the moment of execution, yield acts as return and can even return a value. The difference is that during the next call, the function will start its execution from the instruction right after the yield operator.

Syntax

Source code (UnigineScript)
// some_code_before; 
yield value; 
// some_code_after;

Parts

  • value is a value to yield. It is optional (0 by default).

Example

Source code (UnigineScript)
int foo() {
	begin:
		
		// execution starts here during the first call
		log.message("one, ");
		
		// execution ends here during the first call
		yield;
		
		// execution starts here during the second call
		log.message("two, ");
		
		// execution ends here during the second call
		yield;
		
		// execution starts here during the third call
		log.message("three, ");
		
		// execution starts here during the third call
		yield;
		
		// execution starts here during the fourth call
		goto begin;
}
forloop(int i = 0; 10) foo();

// the result is: one, two, three, one, two, …
Last update: 2017-07-03