У меня есть объекты в моей 2D-игре, которые находятся в списке массивов. Эти объекты создают экземпляры других объектов в игре. Какие из них создаются случайным образом. Однако они могут быть уничтожены во время игры. Код все еще пытается найти разрушенное преобразование, поэтому я сказал ему создавать экземпляр только из массива, когда он не равен нулю, исправив сообщение об ошибке. Тем не менее, поведение остается. Поскольку один из этих массивов порождает gameObject каждые заданное количество секунд, он все равно может решить создать объект из массива, имеющего значение NULL. Когда он случайным образом выбирает нулевой массив, есть период времени, когда игра должна сидеть и ждать, пока что-то произойдет, что, конечно, недопустимо. Как сообщить игре, что, когда массив имеет значение NULL, пропустить его и перейти к следующему, чтобы избавиться от этого периода ожидания в игре? Я также знаю, что void ничего не возвращает. Это просто заполнитель в конце скрипта, потому что я не могу ввести break или continue, поскольку это не цикл for. Я публиковал это раньше, и как только сообщение об ошибке появилось, я подумал, что это конец. Прошу прощения за то, что разместил это во второй раз. Заранее спасибо.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Text;
public class podControl : MonoBehaviour {
public Transform [] spawns;
public float spawnTime = 6f;
public float secondSpawnTime = 3f;
public GameObject podPrefab;
void Start ()
{
InvokeRepeating ("landingPod", spawnTime, secondSpawnTime);
}
void landingPod ()
{
int spawnIndex = Random.Range (0, spawns.Length);
if (spawns[spawnIndex] != null) {
Instantiate (podPrefab, spawns [spawnIndex].position, spawns [spawnIndex].rotation);
}
else {
if (spawns [spawnIndex] = null)
return;
}
}
}