FindGameObjectsWithTag查找很多对象

时间:2018-07-04 14:06:59

标签: c# unity3d

我有一些GameObjects,上面有ParticleSystem的DustStorm。

我想将所有的粒子系统存储在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的长度和GameObjectsArray的名称的信息。 / p>

我的问题是:例如,当场景中有5个DustStorms时,第一个Debug.Log返回6。

第二个Debug.Log(应该获得名称)总是向我显示null一次。其余的都是“ DustStorm”,所以它们是正确的。

我在场景中唯一带有标签“ FxDustStorm”的对象是DustStorms。

编辑:这是控制台的屏幕截图:

enter image description here

0 个答案:

没有答案