Object unity 3d中带限制的随机范围
我在更新函数的c#中声明了vector3的一个变量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); 但这是不可能的。 我不知道如何解决这个问题 联合对团结有什么作用吗 还是其他方法 等待温和的想法和适当的答复 提前感谢。制作一个数字
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个范围调用这个函数。