错误CS0021:无法将带有[]的索引应用于类型为“UnityEngine.GameObject”的表达式

时间:2018-04-05 12:29:04

标签: c# unity3d

我正在尝试使用Unity Prefabs进行简单的爆炸,但它一直在说

  

错误CS0021:无法将带有[]的索引应用于类型为“UnityEngine.GameObject”的表达式

我检查了代码,但我找不到问题。这是我试过的:

public GameObject[] ParticlePrefab; 
public int amountOfPartcles = 3; 

// Use this for initialization  
void Start () 
{               
    for(int i = 0; i<amountOfPartcles; i++) 
    {
        GameObject ParticlePrefab = Instantiate(ParticlePrefab[Random.Range(0,amountOfPartcles)]);
        ParticlePrefab.transform.position = transform.position;
    }
}

1 个答案:

答案 0 :(得分:1)

问题是您使用相同的名称(ParticlePrefab)两次。

另外,您确定要使用粒子数量变量来选择粒子吗?你这样做的方式,如果你的光标不同于所需的颗粒数量,它可能会随机崩溃。

以下是启动方法的方法:

void Start () 
{    
    const int numberOfPrefabs = ParticlePrefab.Length;           
    for(int i = 0; i<amountOfPartcles; i++) 
    {
        GameObject particle = Instantiate(ParticlePrefab[Random.Range(0,numberOfPrefabs)]);
        particle.transform.position = transform.position;
    }
}