我目前正在製作RTS風格的遊戲。我做了這樣的大霧戰爭腳本的製作enimies無形:已被修改的枚舉操作可能無法執行。 Unity
void Update() {
foreach (GameObject enemy in enemies) {
if (enemy == null) {
enemies.Remove (enemy);
continue;
} else {
Visible = false;
foreach (GameObject vision in visions) {
if (vision == null) {
visions.Remove (vision);
continue;
} else {
Vector3 point = enemy.GetComponent<Collider>().ClosestPoint (vision.transform.position);
float range = vision.GetComponent<FieldOfView>().viewRadius;
float distance = Vector3.Distance (point, vision.transform.position);
if (distance <= range) {
Visible = true;
break;
}
}
}
MeshRenderer render = enemy.GetComponent<MeshRenderer>();
if (Visible) {
if (!render.enabled) {
render.enabled = true;
}
} else if (!Visible) {
if (render.enabled) {
render.enabled = false;
}
}
}
}
}
}
每當敵人gamobject被摧毀,我的稱號得到的錯誤。我在編程方面仍然很新,並沒有看到可能導致問題的原因。 我在其他線程上查看了一下自己的問題,但是我沒有真正知道如何解決這個問題。 任何幫助表示讚賞。如果需要更多信息,請詢問我將盡力提供。
當你迭代它時,你根本無法修改列表。這就是錯誤所指的。您可以將您的列表複製到臨時列表,重複此操作並修改原始列表。 – HimBromBeere