Acordado vs. Iniciar

O script API em Unity fornece um conjunto de funções de inicialização.

Funções de inicialização são as funções chamadas no início do ciclo de vida do script.

As funções de inicialização em Unity são 'Awake' e 'Start'.

'Awake' vs. 'Start'

As diferenças entre 'Awake' e 'Start' são a ordem de execução e as condições de execução.

A função 'Awake' é executada primeiro, independentemente de o script estar habilitado ou não, e a função 'Start' só é executada quando o script está habilitado. Ambas as funções são executadas antes do primeiro método 'Update'.

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

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

A função 'Start' também pode ser uma corrotina (substituindo 'void' por 'IEnumerator' e adicionando um parâmetro 'yield'), mas a função 'Awake' não pode.

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

        Debug.Log("Start");
    }

Remover

Ambas as funções são úteis para fins de inicialização (por exemplo, atribuição de variáveis ​​privadas, geração de objetos de jogo, etc.) e, quando usadas em combinação, podem ajudar a implementar uma ampla variedade de cenários.

Artigos sugeridos
Guia para MonoBehaviour em Unity
Métodos no início do tempo de execução que inicializam valores no Unity
Lista de palavras-chave úteis em C#
Entendendo funções e chamadas de método
Introdução à linguagem de script Unity C#
Como se tornar um programador melhor no Unity
Métodos de ofuscação do Unity e proteção anti-hack