我在这里尝试创建一个多人游戏。我想在游戏开始前放置计时器,所以,我做研究,但无法得到任何解决方案。我目前正在使用 "协程"为了这。但是没有工作。它为所有玩家显示不同的时间。
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);
}
}
如果任何人有此代码或教程的代码,请分享链接。
答案 0 :(得分:0)
如果我理解这一点,那么你的等待计时器会持续10秒钟。一旦这为零,开始游戏计时器开始,只有连接的人才能玩游戏。
为了让所有玩家和计时器保持同步,您必须指定一个客户端作为负责保持所有其他客户端同步的服务器,或让服务器向连接到房间的所有玩家广播时间。如果没有这个,你将无法保持时间同步,因为玩家不会同时加入房间。