Карутина

Скрипт, который запускает на старте поочередное выполнение трёх каких-нибудь команд.

public class ThreeStep : MonoBehaviour
{
   private IEnumerator Start()
   {
      yield return new WaitForSeconds(1f);
      Debug.Log(“Шаг 1”);
      yield return new WaitForSeconds(1f);
      Debug.Log(“Шаг 2”);
      yield return new WaitForSeconds(1f);
      Debug.Log(“Шаг 3”);
   }
}

Yield

Yield – ключевое слово. В Unity применяется как указание ожидать указанное количество времени. В примере это одна секунда, но есть еще несколько классов, которые могут использованы:

  • WaitForSeconds(float) — пауза на заданное время.
  • WaitForEndOfFrame () — пауза до конца кадра.
  • WaitForFixedUpdate — пауза до следующего фиксированного кадра (стоит подумать о методе FixedUpdate).
  • null — не ждать. Дальше я покажу, где это может быть полезно.
  • break — преждевременный выход. Это похоже на использование break в циклах.

Постепенное увеличение прозрачности

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class karutina : MonoBehaviour
{

    public Color c;


    void Start()
    {
        c = GetComponent<Renderer>().material.color;
        StartCoroutine(Fade());
    }

    IEnumerator Fade()
    {
        for (float f = 1f; f >= 0; f -= 0.001f)
        {
            
            c.a = f;
            GetComponent<Renderer>().material.color = c;

            yield return null;
        }
    }
}