почему «randomNumber1» всегда присваивается «0», хотя я использую Random.Range (0,2) - PullRequest
1 голос
/ 21 июня 2019

Я хочу произвольно присвоить 0 или 1 randomNumber1, но мне не удалось с этим кодом.

Это код в Unity

public class Practice : MonoBehaviour
{

    public static int randomNumber1;   
    public static int randomNumber2;

    public class randd
    {
        public void randdom_dd()
        {
            int randomNumber1 = Random.Range(0, 2);
            if (randomNumber1 == 0)
            {
                int randomNumber2 = 1;
            }

            else
            {
                int randomNumber2 = 0;
            }
        }

    }

    public void OnClick()
    {
        if (randomNumber1 == 0)
        {
            print("정답!");   
        }

        else
        {
            print("틀렸어!");
        }

    }
}

Я думаю, что когда я играю коды, randomNumber1 всегда имеет один и тот же int. Я попытался изменить минимальное и максимальное значения в Random.Range(min, max), и некоторые попытки потерпели неудачу.

Ответы [ 2 ]

1 голос
/ 21 июня 2019

спасибо всем вам!это работает с этими кодами и да, вы правы, jmrpink.я не использую randomNumber2 в этом коде.моя ошибка!

public void OnClick()
{
        int randomNumber1 = Random.Range(0, 2);
        if (randomNumber1 == 0)
        {
            int randomNumber2 = 1;
        }

        else
        {
            int randomNumber2 = 0;
        }
    if (randomNumber1 == 0)
    {
        print("정답!");   
    }
    else
    {
        print("틀렸어!");
    }

}
1 голос
/ 21 июня 2019

Похоже, ваш метод random_dd на самом деле нигде не вызывается.Так как randomNumber1 определен как поле, он будет автоматически создан равным нулю.Вот почему вы всегда видите случайное число с одним и тем же значением.

Попробуйте вызвать метод random_dd до того, как будет запущен метод OnClick, или просто вызовите метод random_dd в верхней части метода OnClick, прежде чем оценивать свою случайную переменную, и посмотрите, работает ли он.Вот ссылка на пример, который развивает определения полей в C # Определение поля в C # .

Вы также не должны использовать ключевое слово 'int' при назначении значения дляпеременные, которые уже были определены в вашей программе, которые в вашем случае являются переменными randomNumber1 и randomNumber2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...