前两天,老师叫我们做了一个酷跑小游戏,这篇的主要内容运用对象数组循环生成障碍物和金币
首先你需要在地图上设计好需要生成的障碍物和金币的位置并做成空物体,金币和障碍物分别设置统一标签;
在代码段中,首先你需要在代码段中声明2个对象数组(我写的比较简单,如果需要布局严谨,可以每种障碍物写一个对象数组,用不同标签的空物体接收)
这里声明了金币和障碍物的对象数组和四种障碍物的预制体。
在资源管理器类中设置好对应的标签,方便后期进行管理
这里是获取到生成金币和障碍物的空物体位置和金币障碍物的预制体标签
这里遍历每个空物体,随机生成障碍物 ,金币空物体是都生成金币
IEnumerator CloneCoin()
{
yield return new WaitForSeconds(1f);
for(int i = 0; i < Coin.Length-1; i++)
{
GameObject go=Instantiate(cion, Coin[i].transform.position, Quaternion.identity);
go.transform.SetParent(Coin[i].transform);//把生成的物体变成生成位置物体的子物体
}
for(int j= 0; j < Item.Length-1; j++)
{
int a=Random.Range(1,5);
if (a == 1)
{
GameObject go= Instantiate(lz, Item[j].transform.position, Quaternion.identity);
go.transform.SetParent(Item[j].transform);//把生成的物体变成生成位置物体的子物体
}
if (a == 2)
{
GameObject go = Instantiate(dingz, Item[j].transform.position, Quaternion.identity);
go.transform.SetParent(Item[j].transform);//把生成的物体变成生成位置物体的子物体
}
if (a == 3)
{
GameObject go = Instantiate(car, Item[j].transform.position, Quaternion.identity);
go.transform.SetParent(Item[j].transform);//把生成的物体变成生成位置物体的子物体
}
if (a == 4)
{
GameObject go = Instantiate(zl, Item[j].transform.position, Quaternion.identity);
go.transform.SetParent(Item[j].transform);//把生成的物体变成生成位置物体的子物体
}
}
}
这里我给了一个随机数,生成不同的数,对应的空物体生成不同的障碍物,并让生成的障碍物成为空物体的子物体,空物体设置为地图的子物体,这样就可以实现障碍物跟随地图移动。
我对对象数组用到不够熟练,欢迎大家批评指正!!!