void Start()
    {
        var levelConfigs = FindObjectOfType <LevelConfigs>();
        int playerCount  = levelConfigs == null? defaultPlayerCount : levelConfigs.playerCount;

        settings.pointsToWin = levelConfigs == null? settings.pointsToWin : levelConfigs.PointsToWin;
        Debug.Assert(playerPrefabs.Length >= playerCount);
        fsm = new GameManagerFSM(this);
        fsm.AdvanceTo(new GameManagerStartState(fsm));

        players             = new List <Player>();
        CameraRig.m_Targets = new Transform[playerCount];
        for (int i = 0; i < playerPrefabs.Length && i < playerCount; i++)
        {
            players.Add(GameObject.Instantiate(playerPrefabs[i]).GetComponent <Player>());
            players[i].OnDie      += Player_OnDie;
            CameraRig.m_Targets[i] = players[i].transform;
        }
    }
Exemplo n.º 2
0
 public GameManagerInGameState(GameManagerFSM fsm) : base(fsm)
 {
 }
 public GameManagerStartState(GameManagerFSM fsm) : base(fsm)
 {
 }
 public GameManagerBattleOverState(GameManagerFSM fsm, Player winner) : base(fsm)
 {
     this.winner = winner;
     endTime     = Time.time + 5;
 }