public class EnemyCounter : MonoBehaviour
{
GameObject[] enemies;
public Text enemyCountText;
void Start()
{
}
void Update()
{
enemies = GameObject.FindGameObjectsWithTag("bad");
enemyCountText.text = "Enemies : "
enemies.Length.ToString();
if (enemies == null)
{
SceneManager.LoadScene("Level2");
}
}
}
uj5u.com熱心網友回復:
空陣列與空陣列不同。從未定義的陣列
GameObject[] enemies;, 將為空。但是,如果這個陣列被創建為新陣列并填充了值,則它不再為空,即使在洗掉這些值之后也是如此。
陣列是指向存盤在記憶體中的資料的指標。洗掉存盤在記憶體中的資料不會洗掉指標。
我的建議是還要檢查長度:
if (enemies == null || enemies.Length == 0)
uj5u.com熱心網友回復:
當您定義了一個串列時,此代碼不起作用。事實上,一個成員為零的串列不等于 null。null 表示沒有串列定義。
enemies == null;
以這種方式更改代碼:
if (enemies.Length == 0)
{
SceneManager.LoadScene("Level2");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480459.html
