Кнопки Unity с задержками (подождите несколько секунд) - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть 2 кнопки, кнопка 1 и кнопка 2. Когда я нажимаю кнопку 1, кнопка 1 удаляется с экрана, и кнопка 2 становится активной.легко.a Простое событие щелчка.

Однако мне нужна кнопка 2, чтобы подождать 10 секунд, прежде чем она станет активной на экране.

Поэтому я нажимаю кнопку 1, она удаляется сама, тогда в течение 10 секунд ничего не происходит, затем появляется кнопка 2.

Я думаю, мне нужно использовать в C # WaitForSeconds, однако я понятия не имею, как.

Я пробовал это:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{

 void Start()
 {
     StartCoroutine(ButtonDelay());
 }

 IEnumerator ButtonDelay()
 {
     print(Time.time);
     yield return new WaitForSeconds(10);
     print(Time.time);


 }

}

1 Ответ

0 голосов
/ 12 февраля 2019

Вы не должны запускать сопрограмму в Start, вместо этого запускайте сопрограмму, когда нажимается кнопка, добавляя слушателя к вашей кнопке следующим образом:

public Button Button1;
public Button Button2;

void Start() {
    // We are adding a listener so our method will be called when button is clicked
    Button1.onClick.AddListener(Button1Clicked);
}  

void Button1Clicked()
{
    //This method will be called when button1 is clicked 
    //Do whatever button 1 does
    Button1.gameObject.SetActive(false);
    StartCoroutine(ButtonDelay());
}

IEnumerator ButtonDelay()
{
    Debug.Log(Time.time);
    yield return new WaitForSeconds(10f);
    Debug.Log(Time.time);

    // This line will be executed after 10 seconds passed
    Button2.gameObject.SetActive(true);
}

Не забудьте перетащить свои кнопки впубличные поля и button2 не должны быть включены изначально.Удачи!

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