Object unity 3d中带限制的随机范围

Object unity 3d中带限制的随机范围,object,random,range,unity3d,union,Object,Random,Range,Unity3d,Union,我在更新函数的c#中声明了vector3的一个变量 Vector3 position = new Vector3(Random.Range(x, y), 0, 0); 对于x和y,我需要5-10和20-25之间的值 所以值应该是5,6,7,8,9,10,20,21,22,23,24,25 通常我会给 Random.Range(-0F,-2F); 但这是不可能的。 我不知道如何解决这个问题 联合对团结有什么作用吗 还是其他方法 等待温和的想法和适当的答复 提前感谢。制作一个数字

我在更新函数的c#中声明了vector3的一个变量

    Vector3 position = new Vector3(Random.Range(x, y), 0, 0);
对于x和y,我需要5-10和20-25之间的值

所以值应该是5,6,7,8,9,10,20,21,22,23,24,25

通常我会给

    Random.Range(-0F,-2F);
但这是不可能的。 我不知道如何解决这个问题

联合对团结有什么作用吗

还是其他方法

等待温和的想法和适当的答复


提前感谢。

制作一个数字数组
5、6、7、8、9、10、20、21、22、23、24、25

然后从数组中随机选取一个数字

void Awake()
{
   int[] array = {5, 6, 7, 8, 9, 10, 20, 21, 22, 23, 24};

   int randNum = Random.Range(0, array.Length);
}
编辑:我看到你把数字作为一组,但如果你只需要一组x和一组y。然后

Vector3 position = new Vector3(Random.Range(5,11), Random.Range(10, 26), z); 
注意最后一个数字是n+1,因为Random.Range是独占的

EDIT2:使用我的类,它将允许您通过3个范围,并将随机返回一个数字

using UnityEngine;
using System.Collections;

public class RandomSetGenerator
{   
    public static int generateFromRange(int range1Start, int range1Stop, int range2Start, int range2Stop, int range3Start, int range3Stop)
    {
        List<Integer> randomList = new List<Integer>();

        randomList = addToRandomList(randomList, range1Start, range1Stop);
        randomList = addToRandomList(randomList, range2Start, range2Stop);
        randomList = addToRandomList(randomList, range3Start, range3Stop);

        return randomList[Random.Range(0, randomList.Count)];
    }

    private static List<Integer> addToRandomList(List<Integer> randomList, int startRange, int endRange)
    {
        for(int i = startRange; i <= endRange; i++)
            randomList.Add(i);

        return randomList;
    }   
}
使用UnityEngine;
使用系统集合;
公共类随机集生成器
{   
公共静态int-generateFromRange(int-range1Start、int-range1Stop、int-range2Start、int-range2Stop、int-range3Start、int-range3Stop)
{
List randomList=新列表();
randomList=addToRandomList(randomList、range1Start、range1Stop);
randomList=addToRandomList(randomList、range2Start、range2Stop);
randomList=addToRandomList(randomList、range3Start、range3Stop);
返回randomList[Random.Range(0,randomList.Count)];
}
私有静态列表addToRandomList(列表随机列表、int startRange、int endRange)
{

对于(inti=startRange;i如果我也想要30-35,我该如何做。?将它添加到数组:int[]数组={5,6,7,8,9,10,20,21,22,23,24,30,31,32,33,34,35};这是不可能的。如果我需要10-50、100-200、500-600之间的值。?你能更好地解释你的问题吗?这有点不清楚。如果你现在想要10-50、100-200、500-600之间的值。你是想在向量3的x字段中随机选取这些值吗?还是集合10-50对应于x,100-200对应于y,500-600对应于z?我的编辑2应该小心只要在我的类中用你想要的3个范围调用这个函数。