我希望用户能够在主菜单中选择是否要在启用VR立体声的情况下启动游戏,或者如果他们想要以单声道加载它。现在,GvrViewer脚本在GUI中有一个布尔选中标记,用于启用/禁用VR,因此我试图让用户从主菜单中实际控制该布尔值。
我不确定我是否在正确的道路上,但我在主菜单上有两个按钮,上面写着“Enter in VR”和“Enter in Mono”。理想情况下,单击“在VR中输入”会触发一个设置布尔值的函数,并使用触发VR模式的布尔值加载新场景。但是,我无法弄清楚如何将存储的布尔值传递到新场景中,并让它覆盖已经存储在GUI检查器中的设置。我尝试从菜单脚本中“找到”游戏对象的价值,但我似乎无法取得任何成功。
// buttons on main menu
public void LoadMono(int level) {
MonoOrStereo.VRModeEnabled = false;
Application.LoadLevel (level);
}
public void LoadStereo() {
MonoOrStereo.VRModeEnabled = true;
Application.LoadLevel (level);
}
// boolean provided by GvrViewer script for GUI inspector settings
bool VRModeEnabled {
get {
return vrModeEnabled;
}
set {
if (value != vrModeEnabled && device != null) {
device.SetVRModeEnabled(value);
}
vrModeEnabled = value;
}
}
[SerializeField]
public bool vrModeEnabled = false;
答案 0 :(得分:1)
正确的方法是让游戏管理器对象在游戏中持久存在并控制设置类对象。
如果您仍需要在检查器中看到公共布尔值,请使用以下方法:
SettingsObject = GameObject.FindGameObjectsWithTag("Settings");
SceneManager = SettingsObject.GetComponent<SomeSceneManagerClass>();
Scenemanager.vrModeEnabled = true;
很难准确说明需要做什么,因为我需要查看项目的结构,哪些类正在管理您的项目以及它们在Inspector中的组成方式
(请注意,上面的代码只是表明了方法,可能无法按照您的意愿运行。在您的情况下,我需要提供上面提到的数据)