Unity 从脚本访问布尔值以在其他脚本中使用 Google Cardboard

Unity access boolean from script to use in other script Google Cardboard

在我的菜单场景中,我有一个触发函数 LoadStereo() 的布尔按钮,它允许 VRModeEnabled!VRModeEnabled

GvrViewer MonoOrStereo = new GvrViewer(); 

void Awake() { 
    bool stereo = MonoOrStereo.VRModeEnabled; 
} 

public void LoadStereo(bool stereo) { 
    Debug.Log (stereo); 
}

这似乎记录了 true 和 false,因此我的两个按钮在单击时为我提供了正确的值。

但是我无法将此值发送到 Loaded 场景。在 Loaded 场景的启动函数中,我有

void Start() { 
     GameObject MonoOrStereo = GameObject.Find("MonoOrStereo"); 
     Menu menu = MonoOrStereo.GetComponent<Menu>(); 
} 

但我无法访问布尔值 menu.stereo,只能访问 menu.LoadStereo()。我怎样才能把它变成我可以在我的代码中使用的布尔值?

您无法从 Menu 脚本访问 stereo 变量,因为 stereo 是在函数中声明的。在函数外声明它,然后在 Awake() 函数中初始化它。您还必须将其设置为 public 才能访问它。

public GvrViewer MonoOrStereo = new GvrViewer(); 
public bool stereo;

void Awake() { 
    stereo = MonoOrStereo.VRModeEnabled; 
} 

public void LoadStereo(bool stereo) { 
    Debug.Log (stereo); 
}