示例#1
0
 void OnTriggerEnter(Collider other)
 {
     if (other.GetComponent <RespawnOnFall>() != null)
     {
         other.GetComponent <RespawnOnFall>().Respawn();
         return;
     }
     if (other.tag == "Player")
     {
         FriendController f = other.GetComponent <FriendController>();
         RoundManager.instance.TriggerPlayerDeath(f.playerNum);
         if (!GameManager.instance.gameRunning)
         {
             f.Respawn();
         }
         else if (RoundManager.settings.playerRespawn)
         {
             f.Respawn();
         }
         else
         {
             RoundManager.instance.playersToRespawn.Add(f);
         }
     }
 }
示例#2
0
    public void SpawnPlayer(Player player)
    {
        player.isPlaying = true;

        PlayerJoinedArgs args = new PlayerJoinedArgs();

        args.player   = player;
        args.playerId = player.id;
        OnPlayerJoined(args);

        GameObject newPlayer = Instantiate(playerObj);

        if (players.Any(p => p == null))
        {
            int index = players.FindIndex(p => p == null);
            args.playerNum = index;
            Debug.Log("Player spawned as player: " + index);
            players[index] = player;
            newPlayer.GetComponent <Renderer>().material.SetColor("_BaseColor", playerColors[index]);
        }
        else
        {
            Debug.Log("Spawned as player: " + players.Count);
            newPlayer.GetComponent <Renderer>().material.SetColor("_BaseColor", playerColors[players.Count]);
            args.playerNum = players.Count;
            players.Add(player);
        }

        FriendController controller = newPlayer.GetComponent <FriendController>();

        controller.playerId  = player.id;
        controller.playerNum = args.playerNum;
        controller.Respawn();

        playerObjects.Add(player, newPlayer);
        targetGroup.AddMember(newPlayer.transform, 1f, 0f);
    }