コード例 #1
0
    // Use this for initialization
    void Start()
    {
        isRoundOver = false;

        // Count the class numbers to instantiate an even number of NPCs
        warriorCount = 0;
        rogueCount   = 0;
        rangerCount  = 0;
        mageCount    = 0;

        startController = GameObject.Find("StartController").GetComponent <StartController>();
        startController.ResetBeforeRound();

        numPlayers = playersAlive.Count;
        if (startController.isFreeForAllMode)
        {
            for (int i = 0; i < playerList.Capacity; i++)
            {
                // Instantiate the player to the character they have chosen, and set their player index to i+1
                GameObject playerObject = InstantiatePlayer(startController.players[i], i + 1);
                //playerList.Add(playerObject.GetComponent<PlayerMovement>());
                if (playerObject == null)
                {
                    playerList.Add(null);
                }
                else
                {
                    playerList.Add(playerObject.GetComponent <PlayerMovement>());
                }

                if (playerList[i] != null)
                {
                    playersAlive.Add(playerList[i]);
                }
            }

            InstantiateNPCs(npcWarrior, warriorCount, 8, 12);
            InstantiateNPCs(npcMage, mageCount, 8, 12);
            InstantiateNPCs(npcRanger, rangerCount, 8, 12);
            InstantiateNPCs(npcRogue, rogueCount, 8, 12);
        }
        else
        {
            foreach (int playerIndex in startController.team1)
            {
                Debug.Log(startController.players[playerIndex - 1]);
                GameObject playerObject = InstantiatePlayer(startController.players[playerIndex - 1], playerIndex);
                playerObject.tag = "Team1";

                PlayerMovement player = playerObject.GetComponent <PlayerMovement>();
                player.teamNumber = 1;

                playerList.Add(player);
                playersAlive.Add(player);

                Debug.Log(playerObject.tag);
            }
            foreach (int playerIndex in startController.team2)
            {
                Debug.Log(startController.players[playerIndex - 1]);
                GameObject playerObject = InstantiatePlayer(startController.players[playerIndex - 1], playerIndex);
                playerObject.tag = "Team2";

                PlayerMovement player = playerObject.GetComponent <PlayerMovement>();
                player.teamNumber = 2;

                playerList.Add(player);
                playersAlive.Add(player);

                Debug.Log(playerObject.tag);
            }
            foreach (string s in startController.players)
            {
                Debug.Log(s);
            }

            InstantiateNPCs(startController.teams[0], 0, 18, 22);
            InstantiateNPCs(startController.teams[1], 0, 18, 22);
        }
    }