Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Все Вопросы Мои Вопросы

Рандом 2.0

UnityC#2D

Всем привет, я пытался выложить прошлый пост, но отредактировал и не изменилось, ну вообщем я хочу сделать прибавление чисел к тексту, через рандомное нажатие на кнопку
вот скрипт где должен быть рандом:


public void OnClickButton(float value)
{
    Score += ClickScore; //прибавление монет за клик
    TextShowPool[ClickNum].StartMotion((int)ClickScore);
    ClickNum = ClickNum == TextShowPool.Length - 1 ? 0 : ClickNum + 1;
        if (isAcievement1 == true && Achievement1Max < 1000) //первое достижение
        {
            Achievement1Max++;
        }
}

и вот:


public float DonateScore;


Комментарии

10
Lev 18 дней назад

Что имеется ввиду под рандомным нажатием на кнопку и где в методе должен быть заложен рандом?

Fin4ik 17 дней назад

Lev, ну вот ты нажимаешь на кнопку и типа с каким-то с шансом получаешь монету, но хочу сделать через рандом, но если есть другой способ, более оптимизированный, то можно и его

Lev 17 дней назад

Fin4ik,


[Range(0,1)] public float randomPercent;

public void OnClickButton(float value)
{
  if(Random.value < randomPercent) return;

    Score += ClickScore; //прибавление монет за клик
    TextShowPool[ClickNum].StartMotion((int)ClickScore);
    ClickNum = ClickNum == TextShowPool.Length - 1 ? 0 : ClickNum + 1;
        if (isAcievement1 == true && Achievement1Max < 1000) //первое достижение
        {
            Achievement1Max++;
        }
}

Lev 17 дней назад

Fin4ik, и там в переменной указываешь вероятность выпадения монет от 0 до 1, где 1 - выпадает всегда, а 0 - не выпадает никогда, ну и соответственно между этими значениями можно получить нужный процент.

Fin4ik 14 дня назад

Lev, спасибо

Admin 17 дней назад

Вообщем, если я правильно понял суть вопроса, то вот, пришло в голову 2 простых варианта.

Вариант #1:
Создаёшь переменную, например number, и заносишь в неё значение, например 5 - это шанс(%) получения монет при нажатии на кнопку. А при нажатии на кнопку, рандомишь случайное число от 1 до 100, и заносишь в переменную random. А дальше делаешь эту проверку:

if(random <= number) 
{
// тут прибавляешь монеты
}
Это самый простой способ.

Вариант #2
Создаёшь переменную, например countForWin. При нажатии на кнопку, рандомишь случайное число, и заносишь его в переменную countForWin. Это сгенерированное число говорит нам о том, сколько нам нужно нажать на кнопку, чтобы нам дали монеты.
А так же каждый раз при нажатии на кнопку делаешь countForWin--, тоесть уменьшаешь данное значение. И как только countForWin станет 0, то выдаёшь монеты, и заново случайно генерируешь countForWin.

Fin4ik 14 дня назад

Admin, спасибо

Fin4ik 14 дня назад

Admin, только можно поподробнее, боюсь залажать :)

Admin 13 дня назад

Вариант #1:

public int number = 5; // Тут указываешь шанс(%) получения монет при нажатии на кнопку, от 1 до 100

public void OnClickButton()
{
    public int random = Random.Range(1, 100);
    if(random <= number) 
    {
        // тут прибавляешь монеты
    }
}


Вариант #2
public int countForWin; // Количество кликов для получения монет

private void Start() {
    countForWin = Random.Range(20, 50);
}

public void OnClickButton()
{
    countForWin--;
    if(countForWin == 0) 
    {
        countForWin = Random.Range(20, 50);
        // и прибавляешь монеты
    }
}

Fin4ik 11 день назад

Admin, cпасибо огромное

Гости не могут отвечать на вопросы. Войдите на Сайт или Зарегистрируйтесь