我正在尝试使用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;
}
}
答案 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;
}
}