好的,基本上我有一个列表可以跟踪场景中的所有敌人。我主要使用这个列表所以我可以让每个敌人检查其他敌人的位置,这样他们就不会在同一个地方结束。当敌人被创造时,它会将自己添加到一个列表中,但是一旦它被杀死,我需要敌人将其自身移除。我在下面的代码中尝试了我所拥有的但是它抛出了一个错误(ArgumentOutOfRangeException:Argument超出范围)。
void Start ()
{
Manager.EnemyList.Add(this.gameObject);
ListSpot = Manager.EnemyList.Count;
}
//Kills the enemy
public void Kill()
{
Manager.EnemyList.RemoveAt(ListSpot);
Destroy(this.gameObject);
}
答案 0 :(得分:4)
使用 System.Collections.Generic 命名空间中的列表,然后您可以使用对象的实例调用“添加”和“删除”。它将使用实例的哈希函数来完成它的工作。
List<GameObject> enemies = new List<GameObject>();
enemies.Add(enemy1);
enemies.Remove(enemy1);
编辑:您的解决方案会抛出异常,因为索引从0开始,并且count将始终从1开始计数。如果添加第一个元素,其位置为0,但计数为1。