Как сделать таймер до начала многопользовательской игры в Unity 5.?
Здесь я пытаюсь создать многопользовательскую игру. Я хочу установить таймер до начала игры, поэтому я провожу исследование, но не могу найти никакого решения для этого. Я в настоящее время использую "Coroutine" для этого. но не работает. Это показывает разное время для всех игроков.
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 ответ
Если я правильно понимаю, у вас есть таймер ожидания, который тикает в течение 10 секунд. Если это значение равно нулю, запускается таймер запуска игры, и играть могут только те, кто подключен.
Для синхронизации всех игроков и таймеров вам нужно будет либо назначить одного клиента сервером, отвечающим за синхронизацию всех других клиентов, либо настроить сервер на передачу времени всем игрокам, которые подключаются к комнате. Без этого вы не сможете синхронизировать время, так как игроки не присоединяются к комнате одновременно.