Sistema de eventos simples no Unity

Estou tentando usar o sistema e, vent no Unity (maneira C #), mas estou tendo problemas para implementá-lo.

A maioria dos exemplos mostra uma classe em que você define o manipulador; então você escreve na mesma classe, a função que corresponde à assinatura do manipulador e os eventos como estáticos

public class EventExample : MonoBehaviour
{
    public delegate void ExampleEventHandler();
    public static event ExampleEventHandler OneDayPassed;

    public static void NextTurn()
    {
        // do stuff then send event
        if (OneDayPassed != null)
            OneDayPassed();
    }
}

Em outra classe, você se inscreve nos eventos, criando uma função que realmente faz algo

public class EntityWatcher: MonoBehaviour
{
    void Start()
    {
        EventExample.OneDayPassed += this.PrepareNextDay;
    }

    public void PrepareNextDay()
    {
        // Do other stuff that happen after the day is done

    }
}

Até o momento, não há problemas, mas não sei como projetar isso; portanto, qualquer GameObject de um tipo específico, se inscreverá neste evento. Por exemplo, se você tem uma categoria de equipe GO, que está funcionando de 8 a 6, e você as instancia em tempo de execução; devo me inscrever na classe principal desta categoria ou devo criar um script que anexo à pré-fabricada Game Object, que se inscreva no evento?

O objetivo é que todos os funcionários que devem fazer um turno de 8 a 6 no centro esportivo saibam quando o evento "o dia está terminado" começar, mas eu não quero assinar todos os pré-fabricados que eu instanciar.

Pelo meu entendimento, devo anexar um script com o código necessário na pré-fabricada, mas não consigo encontrar um exemplo prático que mostre se essa é realmente a maneira de fazê-lo.