コード例 #1
0
    IEnumerator GameEndCoroutine()
    {
        // Tell each player if they won or lost.
        var players = GameObject.FindGameObjectsWithTag("Player");

        foreach (GameObject playerObject in players)
        {
            MyThirdPersonUserControl player = playerObject.GetComponent <MyThirdPersonUserControl>();
            if (player.coins >= coinsToWin)
            {
                player.RpcWinMatch();
            }
            else
            {
                player.RpcLoseMatch();
            }
        }

        // Display countdown.
        gameEndText.enabled = true;
        for (int i = 0; i < endSeconds; i++)
        {
            gameEndText.text = string.Format("Going back to looby in {0} seconds", endSeconds - i);
            yield return(new WaitForSeconds(1.0f));
        }
        gameEndText.enabled = false;
        LobbyManager.s_Singleton.ServerReturnToLobby();
    }
コード例 #2
0
    public override void OnLobbyServerSceneLoadedForPlayer(NetworkManager manager, GameObject lobbyPlayer, GameObject gamePlayer)
    {
        LobbyPlayer lobby = lobbyPlayer.GetComponent <LobbyPlayer>();
        MyThirdPersonUserControl playerChar = gamePlayer.GetComponent <MyThirdPersonUserControl>();

        playerChar.playerName = lobby.playerName;
        playerChar.color      = lobby.playerColor;
    }
コード例 #3
0
    IEnumerator GameStartCoroutine()
    {
        // Display countdown.
        gameStartText.enabled = true;
        for (int i = 0; i < startSeconds; i++)
        {
            gameStartText.text = (startSeconds - i).ToString();
            yield return(new WaitForSeconds(1.0f));
        }
        gameStartText.enabled = false;
        var players = GameObject.FindGameObjectsWithTag("Player");

        // The server will tell each client where to spawn the player.
        if (isServer)
        {
            foreach (GameObject player in players)
            {
                MyThirdPersonUserControl playerControl = player.GetComponent <MyThirdPersonUserControl>();
                Debug.Log(string.Format("Spawning player {0}", playerControl.name));
                playerControl.RpcSpawn(NetworkManager.singleton.GetStartPosition().position);
            }
        }

        // Enable UI
        GameObject scores      = GameObject.Find("Scores");
        Object     scorePrefab = Resources.Load("Prefabs/PlayerScore");

        foreach (GameObject player in players)
        {
            GameObject score = (GameObject)Instantiate(scorePrefab, Vector3.zero, Quaternion.identity, scores.transform);
            score.GetComponent <PlayerScore>().player = player.GetComponent <MyThirdPersonUserControl>();
        }
        GameObject.Find("ItemBorder").GetComponent <RawImage>().enabled = true;

        // Enable camera script
        Camera.main.GetComponent <MySmoothFollow>().enabled = true;
    }