【问题标题】:what is the reason that 'randomNumber1' is always assigned by '0' though i use Random.Range(0,2)尽管我使用 Random.Range(0,2),但“randomNumber1”总是由“0”分配的原因是什么
【发布时间】:2019-11-04 10:39:12
【问题描述】:

我想将 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 个变量?我认为您将能够获得相同的功能,但不那么复杂,仅使用 randomNumber1 并在 if/else 语句中检查它的值。 Random.Range 的上限是独占的,这意味着 Range(0,2) 只会返回 0 或 1,这就是您想要的。
  • 您似乎没有在任何地方触发randdom_dd()。在执行 IF 之前尝试将其添加到 OnClick 函数中

标签: c# unity3d


【解决方案1】:

看起来您的 random_dd 方法实际上并没有在任何地方被调用。因为 randomNumber1 被定义为一个字段,它会自动实例化为零。这就是为什么您总是看到您的随机数显示为相同的值。

尝试在点击 OnClick 方法之前调用 random_dd 方法,或者在评估随机变量之前调用 OnClick 方法顶部的 random_dd 方法,看看是否有效。这是一个示例的链接,该示例详细说明了 C# Defining a Field in C# 中的字段定义。

在为程序中已经定义的变量(在您的例子中是 randomNumber1 和 randomNumber2 变量)赋值时,您也不应该使用“int”关键字。

【讨论】:

    【解决方案2】:

    谢谢大家!它适用于此代码 是的,你是对的,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("틀렸어!");
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-06-27
      • 2021-05-23
      • 2021-12-24
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 2021-12-30
      相关资源
      最近更新 更多