Despierto versus comienzo

La secuencia de comandos API en Unity proporciona un conjunto de funciones de inicialización.

Las funciones de inicialización son las funciones que se llaman al inicio del ciclo de vida del script.

Las funciones de inicialización en Unity son 'Awake' y 'Start'.

'Awake' vs. 'Start'

Las diferencias entre 'Awake' y 'Start' son el orden de ejecución y las condiciones de ejecución.

La función 'Awake' se ejecuta primero, independientemente de si el script está habilitado o no, y la función 'Start' solo se ejecuta cuando el script está habilitado. Ambas funciones se ejecutan antes del primer método 'Update'.

    void Awake()
    {
        Debug.Log("Awake runs first");
    }

    void Start()
    {
        Debug.Log("Start runds second");
    }

La función 'Start' también puede ser una corrutina (reemplazando 'void' con 'IEnumerator' y agregando un parámetro 'yield'), pero la función 'Awake' no puede.

    IEnumerator Start()
    {
        //Wait 1 second before running the next code
        yield return new WaitForSeconds(1);

        Debug.Log("Start");
    }

Llevar

Ambas funciones son útiles para fines de inicialización (por ejemplo, asignar variables privadas, generar objetos de juego, etc.) y, cuando se usan en combinación, pueden ayudar a implementar una amplia variedad de escenarios.

Artículos sugeridos
Guía de MonoBehaviour en Unity
Métodos al comienzo del tiempo de ejecución que inicializan valores en Unity
Lista de Unity de palabras clave útiles en C#
Comprensión de funciones y llamadas a métodos
Introducción al lenguaje de secuencias de comandos Unity C#
Cómo convertirse en un mejor programador en Unity
Métodos de ofuscación de Unity y protección anti-piratería