从一个数组中选择一个随机的元素
- 从数组中选择随机元素
var element = myArray[Random.Range(0, myArray.Length)];
以不同的概率选择元素
- 50% chance of friendly greeting
- 25% chance of running away
- 20% chance of immediate attack
- 5% chance of offering money as a gift
一定区域内的随机点
- 体积为1的立方体里的随机点
var randVec = Vector3(Random.value, Random.value, Random.value);
2. 区域为球的话,球内的随机点
var randWithinRadius = Random.insideUnitSphere * radius;
3. 区域为圆的话,圆内的随机点
var randWithinCircle = Random.insideUnitCircle * radius;
- 从一系列随机数中随机选择不重复的项
每选完一个都减去一个,直到减到0
Transform[] spawnPoints;
Transform[] ChooseSet (int numRequired) {
Transform[] result = new Transform[numRequired];
int numToChoose = numRequired;
for (int numLeft = spawnPoints.Length; numLeft > 0; numLeft--) {
float prob = (float)numToChoose/(float)numLeft;
if (Random.value <= prob) {
numToChoose--;
result[numToChoose] = spawnPoints[numLeft - 1];
if (numToChoose == 0) {
break;
}
}
}
return result;
}
- 洗牌
void Shuffle (int[] deck) {
for (int i = 0; i < deck.Length; i++) {
int temp = deck[i];
int randomIndex = Random.Range(0, deck.Length);
deck[i] = deck[randomIndex];
deck[randomIndex] = temp;
}
}