Моя концепция очень проста: я порождаю объекты.У меня есть три поплавка: RunEvery, BetweenThis и AndThis.Я могу получить взамен значение, но я не могу изменить это значение.Мне бы хотелось каждый раз новое случайное число, но я просто продолжаю получать одно и то же начальное значение.
RunEvery = Random.Range(BetweenThis, AndThis);
Допустим, что BetweenThis равен 1, а AndThis равен 20. RunEvery становится любымчисло от 1 до 20. Таким образом, если выбранное число равно 10, скрипт будет порождать этот объект каждые десять секунд.
Я не ищу "10, 10, 10, 10, 10 ... и т. Д."
Мне нужно, "10, 7, 5.5, 18, 9 ... и т. Д."
public UnityEvent OnTimerEnd;
void OnEnable()
{
SetRandomizer();
if (RunOnAwake){
Invoke("Execute", 0);
}
if (Loop){
//SetRandomizer();
InvokeRepeating("Execute", RunEvery, RunEvery);
}
else{
Invoke("Execute", RunEvery);
}
}
public void SetRandomizer(){
RunEvery = Random.Range(BetweenThis, AndThis);
Debug.Log("The Random Range is " + RunEvery);
}
public void Execute(){
OnTimerEnd.Invoke();
//SetRandomizer();
}
Я бы хотел, чтобы он продолжал выбирать случайные числа, но я могу только получитьскрипт для повторения начального значения каждый раз.
Я пытался создать новые функции, которые содержат материал Random.Range, но по какой-то причине он будет использовать только первое сгенерированное значение.
Я попытался переместить части кода, создать IEnumerator и просто ждать, и я даже попытался включить и выключить весь скрипт.Есть куча других вещей, которые я пробовал, но я не буду утомлять вас этим.
Я уверен, что это легко исправить, но это не то, что я могу понять самостоятельно.Я просмотрел API сценариев, руководство и мои книги по C #, но они когда-либо говорили об использовании Random.Range только один раз, а не несколько раз.