We are going to implement the Race Event Bus in two easy steps:
- To start, we need to expose the specific race event types that we support, which we will do with the following enum:
namespace Chapter.EventBus
{
public enum RaceEventType
{
COUNTDOWN, START, RESTART, PAUSE, STOP, FINISH, QUIT
}
}
It's important to note that the preceding enum values represent specific events outlining the stages of a race, from start to finish. So we are restricting ourselves to handling events with just a global scope.
- The next part is the core component of the pattern, the actual game event bus class, which we will call RaceEventBus, to be more domain-specific in the naming convention of our classes:
using UnityEngine.Events;
using System.Collections.Generic;
namespace Chapter.EventBus
{
public class RaceEventBus
{
private static readonly
IDictionary<RaceEventType, UnityEvent>
Events = new Dictionary<RaceEventType...