[英]How to make Random.Range() in unity more random?
int runMade=Random.Range(1,7)
Random.Range() 在 unity 中多次生成相同的數字。 我還注意到它多次生成像 1 或 2 這樣的小數字。 我現在正在制作板球比賽,所以我需要更多的隨機生成。 有沒有辦法讓生成更隨機?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GenerateRandom : MonoBehaviour
{
private List<int> lastNumbers;
void Start()
{
lastNumbers = new List<int>();
//Use a seed to get the same numbers every time.
//https://docs.unity3d.com/ScriptReference/Random-state.html
//Random.InitState(932903292);
for (int i = 0; i < 10; i++)
{
Debug.Log("Random number: " + GenerateRandomNumber());
}
}
public int GenerateRandomNumber()
{
//The highest number you want here. The lower number is inclusive, higher one exclusive.
int rand = Random.Range(0, 10);
//Regenerate while the lastNumbers contains random.
while (lastNumbers.Contains(rand))
{
rand = Random.Range(0, 10);
}
//Store it.
AddNumberToList(rand);
//Give back the number we generated.
return rand;
}
void AddNumberToList(int number)
{
if (lastNumbers.Count > 3)
{
lastNumbers.RemoveAt(lastNumbers.Count - 1);
}
lastNumbers.Insert(0, number);
Debug.Log("Last numbers: ");
for (int i = 0; i < lastNumbers.Count; i++)
{
Debug.Log($"Index ({i}): {lastNumbers[i]}");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.