我在更新函数
中的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);
但这里不可能。 我不知道要解决这个问题。
任何联合功能是否统一?
或任何其他方法???
等待温和的想法和适当的回复。
先谢谢。
答案 0 :(得分:2)
创建数字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;
}
}