У меня есть некоторый GameObjects
DustStorm с ParticleSystem
на нем.
Я хочу сохранить все ParticleSystems в Array
, поэтому я использую код ниже:
GameObject[] dustStormGameObjects;
ParticleSystem[] dustStorms;
dustStormGameObjects = GameObject.FindGameObjectsWithTag("FxDustStorm");
Debug.Log(dustStormGameObjects.Length.ToString());
dustStorms = new ParticleSystem[dustStormGameObjects.Length];
for (var i = 0; i < dustStormGameObjects.Length; i++)
{
Debug.Log(dustStormGameObjects[i].name.ToString());
dustStorms[i] = dustStormGameObjects[i].GetComponent<ParticleSystem>();
Debug.Log(dustStormGameObjects[i].name.ToString());
}
У меня есть несколько Debug.Logs (которые вы можете увидеть в коде), чтобы получить информацию о длине Array
и именах GameObjects
в Array
.
Моя проблема: Когда у меня есть, например, 5 DustStorms на сцене, первый Debug.Log возвращает 6.
Второй Debug.Log (который должен получить имена) всегда показывает мне один раз null
. Остальные "DustStorm", поэтому они правильные.
Единственные объекты, которые у меня есть на сцене, которые имеют тег "FxDustStorm", - это DustStorms.
Редактировать: вот скриншот с консоли: