Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以百分比/概率统一生成随机游戏对象_C#_Unity3d_Game Development - Fatal编程技术网

C# 以百分比/概率统一生成随机游戏对象

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

因此,我有4个游戏对象,目前正在随机繁殖

1.普通月台 2.尖顶平台 3.弹性平台 4.投币台

所以问题是它是随机繁殖的。 问题 如何添加或控制每个平台的繁殖概率。代码方面。C#

比如在游戏时间的10秒内。 生成常规平台的几率为85% 有5%的几率产卵到spiky平台 5%的几率产生弹跳平台 5%的几率产生硬币平台


请注意,在游戏中,平台每秒钟都在繁殖一次。

您可以这样做

/// <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 });