我正在开发一款安卓游戏,当敌人死亡时,它会使用下面的代码将地面上的物品丢弃。该代码适用于单个项目,但如何对代码进行适当的更改,以便从数组中删除随机项目。
public GameObject dropitems;
float droprate = 0.25f;
public void DropItem()
{
if(Random.Range(0f,1f)<=droprate)
Instantiate (dropitems, this.transform.position, this.transform.rotation);
}
答案 0 :(得分:2)
您需要将dropitems
更改为GameObject数组。您可以在编辑器屏幕上将其填充为列表。此外,当程序流达到项目丢弃的状态时,您需要定义另一个随机数。索引应该介于0和dropItems
中的项目数之间。
public GameObject[] dropitems;
float droprate = 0.25f;
public void DropItem()
{
if(Random.Range(0f,1f)<=droprate)
{
int indexToDrop = Random.Range(0, dropItems.Length);
Instantiate (dropitems[indexToDrop], this.transform.position, this.transform.rotation);
}
}
请注意,当您使用带有Random函数的Random.Range(int min, int max)
时,它会返回min [inclusive]和max [exclusive]之间的整数,as it is stated in the documentation。