Мне нужно знать число enemyCans
влево, поэтому, когда нет оставшихся, я могу вызвать условие выигрыша. Прямо сейчас у меня есть сценарий на моем компоненте взрыва, который функционирует правильно, что означает, что он удаляет любую пушку врагов, которая находится на определенном расстоянии от взрыва.
enemyCans
объявляется и присваивается следующее значение в методе start()
, соответственно:Проверка количества объектов GameObject в моем массиве
GameObject[] enemyCans; //Before start
void Start() {
enemyCans = GameObject.FindGameObjectsWithTag("EnemyCannon");
}
Затем я использую это значение в методе, называемом CannonKiller()
, который перебирает Превращает противника Кэннона, чтобы проверить и посмотреть, если приходит взрыв рядом с ними. Я уверен, что это не самый элегантный способ сделать это, но aforemention метод приведен ниже:
void CannonKiller()
{
foreach(var cannon in GameObject.FindGameObjectsWithTag("EnemyCannon").Select(enemyCans => enemyCans.transform).ToArray())
{
foreach (var aCan in enemyCans)
{
float enemyDis = Vector3.Distance(cannon.position, transform.position);
if (enemyDis <= 4)
{
Destroy(aCan);
}
}
}
}
Я хотел бы быть в состоянии иметь возможность проверить и посмотреть в вложенных foreach
петель чтобы узнать, равен ли число врагов нулю, поэтому я могу назвать метод завершения. Я предположил, что это будет работать:
if (enemyCans == 0) //placed inside the foreach
{
finish("enemy");
}
, но я был некорректен. Как я могу проверить, нет ли у них оставшихся вражеских пушек, чтобы вызвать мой метод финиша.
cant вы проверяете, '' Array.Length == 0'? – Jacobr365
Вы можете подсчитать количество уничтоженных пушек и сравнить их с врагомCans.Length – Casperah
HI Austin, чтобы быть понятным, вы имеете в виду, что вы ** не знаете, какой вызов должен получить длина массива или List **? Вы можете объяснить? это просто длина, как упоминает Джейкоб – Fattie