C# 以百分比/概率统一生成随机游戏对象
因此,我有4个游戏对象,目前正在随机繁殖 1.普通月台 2.尖顶平台 3.弹性平台 4.投币台 所以问题是它是随机繁殖的。 问题 如何添加或控制每个平台的繁殖概率。代码方面。C# 比如在游戏时间的10秒内。 生成常规平台的几率为85% 有5%的几率产卵到spiky平台 5%的几率产生弹跳平台 5%的几率产生硬币平台C# 以百分比/概率统一生成随机游戏对象,c#,unity3d,game-development,C#,Unity3d,Game Development,因此,我有4个游戏对象,目前正在随机繁殖 1.普通月台 2.尖顶平台 3.弹性平台 4.投币台 所以问题是它是随机繁殖的。 问题 如何添加或控制每个平台的繁殖概率。代码方面。C# 比如在游戏时间的10秒内。 生成常规平台的几率为85% 有5%的几率产卵到spiky平台 5%的几率产生弹跳平台 5%的几率产生硬币平台 请注意,在游戏中,平台每秒钟都在繁殖一次。您可以这样做 /// <summary> /// Returns random index of a finite probab
请注意,在游戏中,平台每秒钟都在繁殖一次。您可以这样做
/// <summary>
/// Returns random index of a finite probability distribution array
/// </summary>
/// <param name="prob"></param>
/// <returns></returns>
public static int PickOne(float[] prob)
{
int index = 0;
float r = UnityEngine.Random.value;
while (r > 0)
{
r -= prob[index];
index++;
}
index--;
return index;
}
index
将是基于您给出的概率分布的随机索引值(在本例中介于0和3之间)
int index = PickOne(new float[] { 0.85f, 0.05f, 0.05f, 0.05f });