<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.cifprodolfoucha.es/index.php?action=history&amp;feed=atom&amp;title=UNITY_Coroutines</id>
	<title>UNITY Coroutines - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cifprodolfoucha.es/index.php?action=history&amp;feed=atom&amp;title=UNITY_Coroutines"/>
	<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=UNITY_Coroutines&amp;action=history"/>
	<updated>2026-10-17T19:22:03Z</updated>
	<subtitle>Historial de revisiones de esta página en el wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.cifprodolfoucha.es/index.php?title=UNITY_Coroutines&amp;diff=21856&amp;oldid=prev</id>
		<title>Angelfg: /* Funcionamiento */</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=UNITY_Coroutines&amp;diff=21856&amp;oldid=prev"/>
		<updated>2023-11-21T15:15:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Funcionamiento&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 15:15 21 nov 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l35&quot; &gt;Línea 35:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 35:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:: Normalmente las opciones que se ponen son:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:: Normalmente las opciones que se ponen son:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* &amp;#039;&amp;#039;&amp;#039;yield return null;&amp;#039;&amp;#039;&amp;#039; =&amp;gt; No continúa la ejecución hasta el siguiente frame.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* &amp;#039;&amp;#039;&amp;#039;yield return null;&amp;#039;&amp;#039;&amp;#039; =&amp;gt; No continúa la ejecución hasta el siguiente frame.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* &amp;#039;&amp;#039;&amp;#039;yield return WaitForSeconds(num_segundos);&amp;#039;&amp;#039;&amp;#039; =&amp;gt; No continúa la ejecución hasta que pasen el número de segundos indicados.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* &amp;#039;&amp;#039;&amp;#039;yield return &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;new &lt;/ins&gt;WaitForSeconds(num_segundos);&amp;#039;&amp;#039;&amp;#039; =&amp;gt; No continúa la ejecución hasta que pasen el número de segundos indicados.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* &amp;#039;&amp;#039;&amp;#039;yield break;&amp;#039;&amp;#039;&amp;#039; =&amp;gt; Sale de la corutina.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* &amp;#039;&amp;#039;&amp;#039;yield break;&amp;#039;&amp;#039;&amp;#039; =&amp;gt; Sale de la corutina.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* Otras opciones de Wait aparecen y son bastante sencillas de entender.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::* Otras opciones de Wait aparecen y son bastante sencillas de entender.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l47&quot; &gt;Línea 47:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 47:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Ejemplos==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Ejemplos==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Angelfg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cifprodolfoucha.es/index.php?title=UNITY_Coroutines&amp;diff=17606&amp;oldid=prev</id>
		<title>Angelfg: Coroutine Unity</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=UNITY_Coroutines&amp;diff=17606&amp;oldid=prev"/>
		<updated>2022-03-04T09:24:01Z</updated>

		<summary type="html">&lt;p&gt;Coroutine Unity&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Introducción==&lt;br /&gt;
&lt;br /&gt;
Una corutina es un método que permite ejecutarse en cada frame o, si queremos, que espere un cierto número de segundos antes de continuar su ejecución.&lt;br /&gt;
&lt;br /&gt;
Recordar que cuando Unity llama al método Update de cualquier script, lo está llamando cada x milisegundos, indicado por el valor de Time.deltaTime.&lt;br /&gt;
&lt;br /&gt;
Esto quiere decir, que si la máquina funciona a 60 frames por segundo (60fps) está llamando 60 veces al método y por consiguiente a cualquier método que llamemos desde update.&lt;br /&gt;
&lt;br /&gt;
Una corutina me va a permitir que la ejecución se &amp;#039;pare&amp;#039; durante un frame o durante un tiempo indicado por nosotros.&lt;br /&gt;
&lt;br /&gt;
Normalmente una corutina se emplea para generar gameobjects a partir de un prefab de forma continua cada cierto tiempo, por ejemplo, enemigos que aparecen durante el juego, como ya vimos en los [https://wiki.cifprodolfoucha.es/index.php?title=Unity_Prefabs#Estableciendo_el_tiempo_para_crear_un_Prefab Prefabs].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;IMPORTANTE:&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
:* Una corutina no es un hilo de ejecución separado del hilo principal. Si programamos un bucle infinito y no escribimos la orden para que salga de la corutina, Unity quedará bloqueado.&lt;br /&gt;
:* No llamar a una corutina de forma continua dentro del método Update de un script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Funcionamiento==&lt;br /&gt;
&lt;br /&gt;
Para hacer uso de una corutina debemos de seguir estos pasos:&lt;br /&gt;
:* Definir un método que va a ser la corutina de la forma: private IEnumerator nombre_metodo { }&lt;br /&gt;
:: Para ello es necesario importar el espacio de nombres System.Collection: using System.Collections;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
private IEnumerator Corutina()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:* Ahora, dentro del método siempre debemos de tener la orden: yield &amp;#039;&amp;#039;&amp;#039;opción&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Normalmente las opciones que se ponen son:&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;yield return null;&amp;#039;&amp;#039;&amp;#039; =&amp;gt; No continúa la ejecución hasta el siguiente frame.&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;yield return WaitForSeconds(num_segundos);&amp;#039;&amp;#039;&amp;#039; =&amp;gt; No continúa la ejecución hasta que pasen el número de segundos indicados.&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;yield break;&amp;#039;&amp;#039;&amp;#039; =&amp;gt; Sale de la corutina.&lt;br /&gt;
::* Otras opciones de Wait aparecen y son bastante sencillas de entender.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:* Se llama al [https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html método StartCoroutine] enviando como parámetro el nombre del procedimiento que devuelve un IEnumerator. Este método está sobrecargado, y podemos llamarlo de varias formas:&lt;br /&gt;
::* StartCoroutine(Corutina()) =&amp;gt; Va el nombre del método con paréntesis.&lt;br /&gt;
::* StartCoroutine(&amp;quot;Corutina&amp;quot;) =&amp;gt; Va el nombre del método entre comillas y sin paréntesis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Ejemplos==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejemplo 1:&amp;#039;&amp;#039;&amp;#039; Empleo de yield return null.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;1,5,13,18&amp;quot;&amp;gt;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
&lt;br /&gt;
......&lt;br /&gt;
&lt;br /&gt;
    private IEnumerator Corutina()&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        int cont = 0;&lt;br /&gt;
        while (true)&lt;br /&gt;
        {&lt;br /&gt;
            Debug.Log(&amp;quot;Contador:&amp;quot; +cont);&lt;br /&gt;
            cont++;&lt;br /&gt;
            yield return null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    void Start()&lt;br /&gt;
    {&lt;br /&gt;
        StartCoroutine(Corutina());&lt;br /&gt;
    }&lt;br /&gt;
    void Update()&lt;br /&gt;
    {&lt;br /&gt;
        Debug.Log(&amp;quot;UPDATE&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Fijarse que por consola aparecen los dos debug (UPDATE y CONTADOR). &lt;br /&gt;
: Lo que está haciendo la corutina es sacar por pantalla un contador que se va incrementando, pero dicho incremento lo hace cada frame por segundo de la máquina.&lt;br /&gt;
: Si no tuviéramos la orden yield, Unity quedaría bloqueado, ya que nunca saldría del bucle infinito.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejemplo 2:&amp;#039;&amp;#039;&amp;#039; Cambio de color.&lt;br /&gt;
: Para mostrar la diferencia de ejecutar un código dentro de una corutina, voy a hacer que el script cambie el color de un gameobject. &amp;lt;u&amp;gt;Para ello tenéis que asociar el script a un gameobject de la escena que tenga material&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    private IEnumerator CambiarColorCorutine()&lt;br /&gt;
    {&lt;br /&gt;
        Renderer renderer = GetComponent&amp;lt;Renderer&amp;gt;();&lt;br /&gt;
        Color c = renderer.material.color;&lt;br /&gt;
        for (float valor = 0f; valor &amp;lt;= 200; valor += 0.1f)&lt;br /&gt;
        {&lt;br /&gt;
            c.r = valor;&lt;br /&gt;
            c.g = valor;&lt;br /&gt;
            renderer.material.color = c;&lt;br /&gt;
            yield return null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Start()&lt;br /&gt;
    {&lt;br /&gt;
        StartCoroutine(&amp;quot;CambiarColorCorutine&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Al ejecutar el script podéis comprobar como se cambia el color del gameobject y lo hace rápidamente pero no de forma &amp;#039;instantánea&amp;#039;.&lt;br /&gt;
: Si vuestra máquina (CPU) funciona a 60fps, cada vez que el método ejecuta la orden yield return null; sale y al siguiente frame continúa la ejecución.&lt;br /&gt;
: Por lo tanto, si el contador va desde 200 hasta 0, tarda 200 frames en terminar de ejecutarse, por lo tanto 200/60 =&amp;gt; 3,3 segundos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Se ejecutáis el mismo código sin emplear una corutina, podéis comprobar como el cambio es instantáneo, ya que dentro del mismo frame ejecuta el bucle completo:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    private void CambiarColorCorutine()&lt;br /&gt;
    {&lt;br /&gt;
        Renderer renderer = GetComponent&amp;lt;Renderer&amp;gt;();&lt;br /&gt;
        Color c = renderer.material.color;&lt;br /&gt;
        for (float valor = 0f; valor &amp;lt;= 200; valor += 0.1f)&lt;br /&gt;
        {&lt;br /&gt;
            c.r = valor;&lt;br /&gt;
            c.g = valor;&lt;br /&gt;
            renderer.material.color = c;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    void Start()&lt;br /&gt;
    {&lt;br /&gt;
        CambiarColorCorutine();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejemplo 3:&amp;#039;&amp;#039;&amp;#039; Esperar un número de segundos.&lt;br /&gt;
Como comenté anteriormente, este recurso se suele emplear para crear enemigos (instanciar prefabs) cada cierto número de segundos.&lt;br /&gt;
En este ejemplo podemos ver como el log aparece cada 3 segundos.&lt;br /&gt;
Ejemplo de uso con prefabs lo tenéis [https://wiki.cifprodolfoucha.es/index.php?title=Unity_Prefabs#Estableciendo_el_tiempo_para_crear_un_Prefab en esta sección de la WIKI].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;7,14&amp;quot;&amp;gt;&lt;br /&gt;
    private IEnumerator CadaSegundos(float segundos)&lt;br /&gt;
    {&lt;br /&gt;
        int cont = 0;&lt;br /&gt;
        while (true)&lt;br /&gt;
        {&lt;br /&gt;
            Debug.Log(&amp;quot;Contador:&amp;quot; + cont);&lt;br /&gt;
            yield return new WaitForSeconds(segundos);&lt;br /&gt;
            cont++;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void Start()&lt;br /&gt;
    {&lt;br /&gt;
        StartCoroutine(CadaSegundos(3));  // Enviamos un parámetro a la coroutine&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Por consola aparecerá el mensaje cada 3 segundos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejemplo 4:&amp;#039;&amp;#039;&amp;#039; Esperar un número de segundos y cuando llegue a 5 segundos sale de la corutina.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;9-10&amp;quot;&amp;gt;&lt;br /&gt;
    private IEnumerator CadaSegundos(float segundos)&lt;br /&gt;
    {&lt;br /&gt;
        int cont = 0;&lt;br /&gt;
        while (true)&lt;br /&gt;
        {&lt;br /&gt;
            Debug.Log(&amp;quot;Contador:&amp;quot; + cont);&lt;br /&gt;
            yield return new WaitForSeconds(segundos);&lt;br /&gt;
            cont++;&lt;br /&gt;
            if(cont==5)&lt;br /&gt;
                yield break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    void Start()&lt;br /&gt;
    {&lt;br /&gt;
        StartCoroutine(CadaSegundos(3));  // Enviamos un parámetro a la coroutine&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[https://wiki.cifprodolfoucha.es/index.php?title=Programacion_de_videojuegos_con_UNITY3D#UNIDAD_4:_Scripts Enlace a la página principal del curso]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2018).&lt;/div&gt;</summary>
		<author><name>Angelfg</name></author>
		
	</entry>
</feed>