Unity 可配置概率的随机数

比如一个抽奖功能,每个奖项对应一种概率比,配比总和为100(当然也可以不是100,只是方便计算百分比)

private int[] weight = new int[4]{ 50, 25, 15, 10 };

//返回值可做为奖品类数组下标,和权重比一一对应即可。
private int GetRandPersonalityType(int[] array, int _total)
{
    int rand = Random.Range(1, _total + 1);
    int tmp = 0;

    for (int i = 0; i < array.Length; i++)
    {
        tmp += array[i];
        if (rand < tmp)
        {
            return i;
        }
    }
    return 0;
}

你可能感兴趣的:(Unity)