我尝试在加载某个场景(播放级别)后使按钮可以互动。它是菜单场景中的一个按钮,表示加载的场景本身(播放后可选择级别)。
问题是:如果用户通过某个级别,比如级别1,则级别2被加载,并且会调用静态方法:
public static void AllowTut2()
{
Tut2Allowed = true; //public static bool initialised in this script
tutorial2.interactable = true; //tutorial2 is a button in the "menu scene"
}
为了清楚变量的来源,这是同一个脚本的一部分:
public class LevelSelectScript : MonoBehaviour {
public Button tutorial2;
public static bool Tut2Allowed = false;
//...some other variables
void Start ()
{
tutorial2 = tutorial2.GetComponent<Button>();
tutorial2.enabled = false; //more later on
///... some other code
}
}
现在问题是这个错误:需要一个对象引用来访问非静态成员`LevelSelectScript.tutorial2&#39; (指方法AllowTut2)。
似乎我无法通过给定的静态方法(在另一个脚本中调用)更改tutorial2.interactable。
它基本上说按钮tutorial2是非静态的,因此不能在静态方法中使用它。
现在,如果我将按钮设为静态,即改变
public Button tutorial2;
到
public static Button tutorial2;
然后我无法将场景中的按钮对象分配给附加脚本中的此变量。
是否有人知道这个问题的解决方案?
提前致谢!