Unity随机函数的问题

Problems with Unity Random Function

晚上好,我正在做一个图形冒险,我想用一个 4 位代码做一个随机函数,结果因为我是一个非常新手的程序员,我遇到了一个不方便的问题

private void CheckResults()
{
    if (codeSequence = RandomCode.RanCode.ToString())
        {
    SoundManager.PlaySound("nice");
    }

else
{
    SoundManager.PlaySound("wrong");
}   

"RandomCode.RanCode" 是一个 int void,添加 "ToString" 会报错

“RanCode 是一种在给定上下文中无效的方法”

这是 RandomCode void:

 public void RanCode()
{
    Code = Random.Range(1111, 9999);
}

如果有人有任何想法或解决方案,我将永远感激

没有“int void”这样的东西。一种方法要么 return 什么都没有 (void) 要么 return 是一个值(在你的情况下你似乎期望 int)。

//   Returns nothing
//      |
//      v
public void RanCode()
{
    // assigns result of `Range` to `Code` property/field
    Code = Random.Range(1111, 9999);
}

如果你还想return这个值,你需要像这样重写你的方法:

public int RanCode()
{
    Code = Random.Range(1111, 9999);
    return Code;
}

您这里还有一个问题:

RandomCode.RanCode.ToString()

要调用你需要()的方法,所以应该是这样的:

RandomCode.RanCode().ToString()

此外,对于相等性检查,您需要 == 而不是 =(这是赋值)。

我很想知道你为什么要在这里给 Code 赋值。如果我们使用您现有的代码(没有我上面的修复),我想也许您打算用这样的方式代替?:

private void CheckResults()
{
    RandomCode.RanCode();   
    if (codeSequence == RandomCode.Code.ToString())
    {
        SoundManager.PlaySound("nice");
    }
    else
    {
        SoundManager.PlaySound("wrong");
    }   
}