You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在函数间传递参数值?请求在Unity中复用maxvalue参数

嘿,让我来帮你搞定这两个问题!

问题1:如何在函数间传递参数值?

在Unity(或者说C#)里,函数间传递参数主要有几种常用方式,选哪种取决于你的场景:

  • 用类的成员变量存储:把需要共享的值存在类的公共/私有字段里,其他函数直接访问这个变量。这是你当前场景最适配的方式。
  • 方法返回值传递:如果某个函数执行后产出一个值,用return把它返回给调用方,调用方拿到后再传给其他函数。
  • 直接作为参数传递:调用另一个函数时,直接把值当作参数传进去,让目标函数直接使用。
问题2:在NextGuess中使用Levelchoose传入的maxvalue参数值

你的代码问题核心是参数名和成员变量名重名了,导致你在Levelchoose里没正确给成员变量赋值。看你原来的代码:

public int maxvalue; // 类的成员变量
public void Levelchoose(int maxvalue){ // 参数名和成员变量同名,这里的maxvalue指的是传入的参数,不是成员变量
    //The parameter
    Application.LoadLevel ("Game"); 
}

在Levelchoose函数里,你操作的是局部参数,而不是类的成员变量,所以NextGuess里拿到的还是成员变量的初始值(默认是0)。这里给你两种解决方案:

方案1:修正成员变量赋值(推荐)

修改参数名避免冲突,然后把参数值赋值给成员变量,这样NextGuess就能直接用了:

public int maxvalue; // 类的成员变量,用来存储传递的值

public void Levelchoose(int newMaxValue){ // 修改参数名,避免和成员变量混淆
    this.maxvalue = newMaxValue; // 把传入的参数值存到成员变量里
    Application.LoadLevel ("Game"); 
}

void NextGuess(){ 
    guess= Random.Range(min , max + 1); 
    text.text = "Is the number greater or lower than "+guess.ToString ()+" ?"; 
    maxvalue = maxvalue - 1; // 现在这里用的就是Levelchoose传入的参数值啦
    print (maxvalue); 
    if (maxvalue<=0){ 
        Application.LoadLevel("Win"); 
    }
}

如果实在不想改参数名,也可以用this.maxvalue = maxvalue;来明确指定访问类的成员变量,但改参数名会让代码更清晰,减少出错概率。

方案2:直接把参数传给NextGuess

如果不需要在多个函数间共享这个值,也可以在调用NextGuess时直接把参数传进去,不用依赖成员变量:

public void Levelchoose(int maxvalue){ 
    NextGuess(maxvalue); // 调用NextGuess时直接传递参数
    Application.LoadLevel ("Game"); 
}

void NextGuess(int currentMaxValue){ // 让NextGuess接收参数
    guess= Random.Range(min , max + 1); 
    text.text = "Is the number greater or lower than "+guess.ToString ()+" ?"; 
    currentMaxValue = currentMaxValue - 1; 
    print (currentMaxValue); 
    if (currentMaxValue<=0){ 
        Application.LoadLevel("Win"); 
    }
}

记得确保你调用Levelchoose的时候传入了正确的数值,比如Levelchoose(10);这样,值才能正确传递哦!

内容的提问来源于stack exchange,提问作者Natsu Dragneel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:45:04