如何在多人游戏开始统一前制作计时器5?

时间:2017-11-29 09:54:28

标签: c# unity3d unity5 multiplayer unity-networking

我在这里尝试创建一个多人游戏。我想在游戏开始前放置计时器,所以,我做研究,但无法得到任何解决方案。我目前正在使用 "协程"为了这。但是没有工作。它为所有玩家显示不同的时间。

private int j = 10;

void Start()
{
    if (isLocalPlayer)
    StartCoroutine (GameStartTimer ());
}


IEnumerator GameStartTimer()
{
    while (j > 0) {
        j = j - 1;
        Debug.Log ("Value of j is : " + j);
        startTimertext.text = j.ToString ();
        yield return new WaitForSeconds (1);
    }
    //ObjectParentingSystem ();
    GetPlayerAnimandRGB ();
    StartCoroutine (StartPlayerTimer ());
    //yield return new WaitForSeconds (10);
    gameStartTextPanel.SetActive (false);
}

我也尝试下面的代码,但是,不能取得成功。

void Start()
{
    if (isServer){
        StartCoroutine (GameStartTimer ());   
    }
    else{
        GetPlayerAnimandRGB ();
        StartCoroutine (StartPlayerTimer ());
        //yield return new WaitForSeconds (10);
        gameStartTextPanel.SetActive (false);
    }
}

如果任何人有此代码或教程的代码,请分享链接。

1 个答案:

答案 0 :(得分:0)

如果我理解这一点,那么你的等待计时器会持续10秒钟。一旦这为零,开始游戏计时器开始,只有连接的人才能玩游戏。

为了让所有玩家和计时器保持同步,您必须指定一个客户端作为负责保持所有其他客户端同步的服务器,或让服务器向连接到房间的所有玩家广播时间。如果没有这个,你将无法保持时间同步,因为玩家不会同时加入房间。