Оператор после waitfor Seconds() не работает в единствеC#

Место общения программистов C#
Ответить
Anonymous
 Оператор после waitfor Seconds() не работает в единстве

Сообщение Anonymous »

Я также новичок в Unity и C#. Я хочу задержать функцию, используя WaitForSeconds(), но моя проблема в том, что оператор после WaitForSeconds() не выполняется и, следовательно, задержка не отображается.

Ниже приведен код:

public void GameOver(){
StartCoroutine (Load ());
Debug.Log("loadDelay");
}

IEnumerator Load(){
Debug.Log ("enum");
yield return new WaitForSeconds(3);
Debug.Log("waited");
}


вывод на консоли показывает:


enum

loadDelay


В то же время без каких-либо задержек при вызове GameOver() и Debug.Log(" waitd");

вообще не выполняется. Я действительно не понимаю проблемы. Пожалуйста, объясните, если я делаю что-то не так.

Спасибо.

Код, в котором вызывается GameOver():

public class Collision : MonoBehaviour {
public GameObject explosion;
BgScroll bg;

void Start () {
bg = GetComponent ();
}

// Update is called once per frame
void Update () {

}

void OnCollisionEnter2D(Collision2D col){
if (col.gameObject.tag == "Enemy") {
//Debug.Log("destroyed");
explosion.renderer.sortingLayerName = "foreground";
Instantiate (explosion, transform.position, Quaternion.identity);

Destroy (gameObject);
Debug.Log("destroyed");

bg.GameOver();
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/315 ... g-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»