Я сделал таймер обратного отсчета с использованием функции Update (), однако, когда я запускаю Unity, обратный отсчет запускается автоматически, я хочу, чтобы он начался только после нажатия кнопки.Когда я убираю функцию кнопки, она, кажется, работает, но опять же мне нужна кнопка, чтобы таймер не запускался автоматически ... любая помощь приветствуется!
(Полный код ... если это поможет)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class CountdownTimer : MonoBehaviour
{
[SerializeField] Text countdownText;
public AudioSource audioData;
public Button m_timer1;
private bool timerOn;
float minutes = 0;
float seconds = 3;
float miliseconds = 0;
void Start()
{
audioData = GetComponent<AudioSource>();
timerOn = false;
Button btn = m_timer1.GetComponent<Button>();
btn.onClick.AddListener(ClickBtn);
}
public void ClickBtn()
{
//Debug.Log("doesthiswork???!!");
timerOn = true;
Invoke(Update);
}
public void Update()
{
if (timerOn == true)
{
Debug.Log("Yo");
if (minutes <= 0 && seconds <= 0 && miliseconds <= 0)// timerOn = false
{
timerOn = false;
//Debug.Log("CurrentTime = 0");
Music_Play();
}
else if (miliseconds <= 0)
{
Debug.Log("ithasreachedthisstage");
if (seconds <= 0)
{
minutes--;
seconds = 59;
}
else if (seconds >= 0)
{
seconds--;
}
miliseconds = 100;
}
miliseconds -= Time.deltaTime * 100;
countdownText.text = string.Format("{0}:{1}", minutes, seconds); //countdown
}
}
void Music_Play() //this works, now make the button work!!!
{
audioData.Play();
//Debug.Log("musicon");
}
}