Estaba viendo tu codigo y lo único que no entendí es la parte de Scripter hay varias clases que se podrían poner en una sola ya que es un juego pequeño, lo reprograme en una sola clase la cual llame GameManager.cs , EnemySpawner lo puse en otro GameObject, y tambien ColorController lo puse en otro GameObject, el atributo de GameController "state" lo convertí en enumerado
public enum GameState{
PressStart=0,
Intro=1,
Game=2,
End=3
}
asi ya se puede entender mas sin necesidad de ver el comentario
, gracias por subir el código.