@8_JOHN_8

Как реализовать паузу в игре с обратным счетчиком?

Всем привет, есть вопрос по поводу паузы в игре, получается я сделал событие на кнопку паузы при нажатии таймскейл равняется 0, после сделал проверку при повторном нажатии, если ее опять нажали во время паузы, должен начаться отсчет времени а потом присвоится таймскейл 1, в итоге отсчет идет только когда я кликаю на саму паузу, а не автоматически.... Вот скрипт.........Почему не в апдейте делаю проверку, потому что как я понял из за тайм скейла который равен нулю, апдейт не работает, как это можно реализовать, есть предложения?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class ButtonPause : MonoBehaviour
{

public Text time_text;
public int timer;
bool time_pause = false;

public void OnMouseUp()
{
if (Time.timeScale == 1)
{
Time.timeScale = 0;
time_pause = false;
}
else
{
time_pause = true;
StartCoroutine(WaitAndPrint());
}
}

IEnumerator WaitAndPrint()
{
if (time_pause)
{

//Debug.Log("TimerCount: " + (timer--));
if (timer == 3)
{ time_text.text = "3"; timer--; yield return new WaitForSeconds(1f); }

//
if (timer ==2)
{ time_text.text = "2"; timer--; yield return new WaitForSeconds(1f); }

//
if (timer == 1)
{ time_text.text = "1"; timer--; yield return new WaitForSeconds(1f); }

//
if (timer == 0)
{ time_text.text = "GO"; Time.timeScale = 1; timer--; yield return new WaitForSeconds(1f); }

//
if (timer == -1)
{ time_text.text = ""; timer = 3; time_pause = false; }

//yield return new WaitForSeconds(1f);

}
}
}
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ответы на вопрос 2
Griboks
@Griboks Куратор тега Unity
Сделайте таймер в отдельном потоке.
Ответ написан
Комментировать
flexer1992
@flexer1992
Unity Developer
Достаточно странная реализация у вас приведена. По факту можно хранить время когда у нас обратный таймер должен завершиться. При постановке на паузу запоминать время постановки на паузу. При снятии с паузы добавлять разницу между моментом постановки и снятия с паузы к времени завершения обратного таймера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы