public void Notify(Message m) { switch (m.messageType) { case GoalScoredMessage.classMessageType: timer.running = false; Callback.FireAndForget(() => resetPositions(), goalToPlayerResetTime, this); break; case GameEndMessage.classMessageType: //add player stats data to the endData, once we figure out what stats to use for (int i = 0; i < players.Length; i++) { InputToAction playerControl = players[i].GetComponent <InputToAction>(); playerControl.movementEnabled = false; playerControl.abilitiesEnabled = false; playerControl.rotationEnabled = false; } data.Destruct(); Destroy(this.gameObject); break; case OvertimeMessage.classMessageType: AudioSource mainMusic = spawnedMainMusicPrefab.GetComponent <AudioSource>(); mainMusic.clip = overtimeClip; mainMusic.Play(); resetPositions(resetTime: false); break; } }