我的代碼:StartCoroutine不會被調用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Enemy : MonoBehaviour {
public GameObject deathEffect;
public float health = 4f;
public static int EnemiesAlive = 0;
public int loadToScene;
void Start()
{
EnemiesAlive++;
}
void OnCollisionEnter2D (Collision2D colInfo)
{
if (colInfo.relativeVelocity.magnitude > health)
{
Die();
}
}
void Die()
{
Instantiate(deathEffect, transform.position, Quaternion.identity);
EnemiesAlive--;
if (EnemiesAlive <= 0)
{
Debug.Log ("LEVEL WON!");
StartCoroutine (delay()); //delay here
loadToScene = 1;
SceneManager.LoadScene (loadToScene);
}
Destroy(gameObject);
}
IEnumerator delay()
{
yield return new WaitForSeconds(2f);
Debug.Log ("Coroutine started?");
}
}
的代碼是關於變化的場景時,敵人的數量小於或等於零。考慮到條件「EnemiesAlive < = 0」已滿足,我想在改變場景之前添加延遲。我使用StartCoroutine,但出於某種原因,我不知道,StartCoroutine未被調用,場景立即發生變化。這是爲什麼?
「的debug.log(」 LEVEL贏了! 「);」被讀取,但「Debug.Log(」協程開始?「);」沒跑。
你不應該在標題中加標籤。網站上的標籤系統足以顯示您正在使用的平臺 –