首页 > 解决方案 > 如何使 Random.Range() 步进一定量?

问题描述

这是一个非常简单的问题,但我不知道如何解决它。可以说我有这条线:

Random.Range(2,4);

我希望这不仅可以生成整数,还可以生成一半。我的意思是步长应该是0.5。我希望它仅从以下随机选择:2、2.5、3、3.5 我不想要任何其他十进制数字。有人可以帮忙吗?

标签: c#unity3d

解决方案


这是针对您的特定情况的简单解决方案。

var randomNumber = ((float)Random.Range(4, 8)) * 0.5f;

您还可以扩展该方法以使用不同的值。

public float GetRandomFloat(int min, int max, float value = 0.5f)
{
    int multipliedMin = (int) (max / value);
    int multipliedMax = (int) (max / value);

    return ((float) Random.Range(multipliedMin, multipliedMax)) * value;
}

推荐阅读