Unity: как я могу начать обновление только после нажатия кнопки (новичок в Unity и в кодировании) - PullRequest
0 голосов
/ 03 декабря 2018

Я сделал таймер обратного отсчета с использованием функции 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");
}

}

1 Ответ

0 голосов
/ 04 декабря 2018

Обновление запускается только тогда, когда component.enabled == true;Если вы снимите флажок рядом с именем компонента, он не начнет свое обновление, пока не будет включен.Вы можете легко прикрепить это к кнопке UI enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...