public bool HandleShortcuts() { if (Input.GetKeyUp(KeyCode.Q)) { FPlatform.QuitApplication(); return(true); } else if (Input.GetKeyUp("escape")) { FPlatform.QuitApplication(); return(true); } return(false); }
void AddMenuButtonsGroup(Cockpit cockpit) { HUDButton importButton = HUDBuilder.CreateRectIconClickButton( 0.1f, 0.05f, 0.7f, 55.0f, -50.0f, //0.1f, 0.05f, 0.7f, 5.0f, -5.0f, // for debugging "icons/import_v1"); importButton.Name = "import"; cockpit.AddUIElement(importButton, true); importButton.OnClicked += (s, e) => { var cp = new FileImportCockpit() { InitialPath = SceneGraphConfig.LastFileOpenPath }; cockpit.Context.PushCockpit(cp); }; HUDButton exportButton = HUDBuilder.CreateRectIconClickButton( 0.1f, 0.05f, 0.7f, 55.0f, -50.0f, //0.1f, 0.05f, 0.7f, 5.0f, -5.0f, // for debugging convenience "icons/export_v1"); UnityUtil.TranslateInFrame(exportButton.RootGameObject, 0, -0.055f, 0, CoordSpace.WorldCoords); exportButton.Name = "export"; cockpit.AddUIElement(exportButton, true); exportButton.OnClicked += (s, e) => { var cp = new FileExportCockpit() { InitialPath = SceneGraphConfig.LastFileOpenPath }; cockpit.Context.PushCockpit(cp); }; HUDButton janusButton = HUDBuilder.CreateRectIconClickButton( 0.1f, 0.05f, 0.7f, 55.0f, -50.0f, //0.1f, 0.05f, 0.7f, 5.0f, -5.0f, // for debugging convenience "cockpit_icons/menu_buttons/janus_v1"); UnityUtil.TranslateInFrame(janusButton.RootGameObject, 0, 2.0f * -0.055f, 0, CoordSpace.WorldCoords); janusButton.Name = "export"; cockpit.AddUIElement(janusButton, true); janusButton.OnClicked += (s, e) => { var cp = new JanusVRExportCockpit() { InitialPath = SceneGraphConfig.LastFileOpenPath }; cockpit.Context.PushCockpit(cp); }; HUDButton loadButton = HUDBuilder.CreateRectIconClickButton( 0.1f, 0.05f, 0.7f, 55.0f, -50.0f, // 0.1f, 0.05f, 0.7f, 5.0f, -5.0f, // for debugging convenience "icons/load_v1"); UnityUtil.TranslateInFrame(loadButton.RootGameObject, 0.12f, 0, 0, CoordSpace.WorldCoords); loadButton.Name = "load"; cockpit.AddUIElement(loadButton, true); loadButton.OnClicked += (s, e) => { var cp = new FileLoadSceneCockpit() { InitialPath = SceneGraphConfig.LastFileOpenPath }; cockpit.Context.PushCockpit(cp); }; HUDButton saveButton = HUDBuilder.CreateRectIconClickButton( 0.1f, 0.05f, 0.7f, 55.0f, -50.0f, // 0.1f, 0.05f, 0.7f, 5.0f, -5.0f, // for debugging "icons/save_v1"); UnityUtil.TranslateInFrame(saveButton.RootGameObject, 0.12f, -0.055f, 0, CoordSpace.WorldCoords); saveButton.Name = "save"; cockpit.AddUIElement(saveButton, true); saveButton.OnClicked += (s, e) => { var cp = new FileSaveSceneCockpit() { InitialPath = SceneGraphConfig.LastFileOpenPath }; cockpit.Context.PushCockpit(cp); }; HUDButton newButton = HUDBuilder.CreateRectIconClickButton( 0.1f, 0.05f, 0.7f, 55.0f, -50.0f, "icons/new_v1"); UnityUtil.TranslateInFrame(newButton.RootGameObject, 0.24f, 0, 0, CoordSpace.WorldCoords); newButton.Name = "new"; cockpit.AddUIElement(newButton, true); newButton.OnClicked += (s, e) => { cockpit.Context.NewScene(true); }; HUDButton quitButton = HUDBuilder.CreateRectIconClickButton( 0.1f, 0.05f, 0.7f, 55.0f, -50.0f, "icons/quit_v1"); UnityUtil.TranslateInFrame(quitButton.RootGameObject, 0.24f, -0.055f, 0, CoordSpace.WorldCoords); quitButton.Name = "quit"; cockpit.AddUIElement(quitButton, true); quitButton.OnClicked += (s, e) => { FPlatform.QuitApplication(); }; }
public void Initialize(Cockpit cockpit) { cockpit.Name = "splashCockpit"; cockpit.DefaultCursorDepth = 3.0f; cockpit.PositionMode = Cockpit.MovementMode.Static; // create black sphere around camera to hide existing scene fGameObject blackBackground = new fGameObject( UnityUtil.CreateMeshGO("background_delete", "icon_meshes/inverted_sphere_tiny", 1.0f, UnityUtil.MeshAlignOption.AllAxesCentered, MaterialUtil.CreateFlatMaterial(Color.black), false)); // add as bounds object to do mouse hit-test cockpit.Context.Scene.AddWorldBoundsObject(blackBackground); // re-parent from Scene so the sphere tracks the camera cockpit.FixedCameraTrackingGO.AddChild(blackBackground, false); HUDButton title = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 2.0f, 0.8f), 3.0f, 0.0f, 2.5f, "simplex_startup/simplex_v2"); title.Name = "title"; title.Enabled = false; cockpit.AddUIElement(title, true); HUDButton start = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 0.5f, 0.25f), 3.0f, 8.0f, -10, "simplex_startup/start_v1"); start.Name = "start"; start.OnClicked += (s, e) => { cockpit.ActiveCamera.Animator().DoActionDuringDipToBlack(() => { cockpit.Context.Scene.RemoveWorldBoundsObject(blackBackground); UnityEngine.GameObject.Destroy(blackBackground); cockpit.Context.PushCockpit( new SetupCADCockpit_V1()); }, 1.0f); }; cockpit.AddUIElement(start, true); HUDButton quit = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 0.5f, 0.25f), 3.0f, -8.0f, -10, "simplex_startup/quit_v1"); quit.Name = "quit"; quit.OnClicked += (s, e) => { FPlatform.QuitApplication(); }; cockpit.AddUIElement(quit, true); HUDButton logo = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 0.8f, 0.2f), 3.0f, 0.0f, -25.0f, "simplex_startup/gradientspace_splash"); logo.Name = "logo"; logo.Enabled = false; cockpit.AddUIElement(logo, true); HUDButton about_arrow = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 0.75f, 0.75f), 3.0f, -30.0f, -10.0f, "simplex_startup/about_arrow"); about_arrow.Name = "about_arrow"; about_arrow.Enabled = false; cockpit.AddUIElement(about_arrow, true); float about_text_scale = 3.0f; float angle_left = -65.0f; HUDButton about_text = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 0.8f * about_text_scale, 1.0f * about_text_scale) { UseUVSubRegion = false }, 3.0f, angle_left, 0.0f, "simplex_startup/about_text"); UnityUtil.TranslateInFrame(about_text.RootGameObject, 0.0f, -0.5f, 0, CoordSpace.WorldCoords); about_text.Name = "about_text"; about_text.Enabled = false; cockpit.AddUIElement(about_text, true); HUDButton controls_arrow = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 0.75f, 0.75f), 3.0f, 30.0f, -10.0f, "simplex_startup/controls_arrow"); controls_arrow.Name = "controls_arrow"; controls_arrow.Enabled = false; cockpit.AddUIElement(controls_arrow, true); float text_scale = 3.0f; float angle_right = 65.0f; HUDButton controls_mouse = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 0.7f * text_scale, 0.7f * text_scale) { UseUVSubRegion = false }, 3.0f, angle_right, 0.0f, "simplex_startup/controls_mouse"); UnityUtil.TranslateInFrame(controls_mouse.RootGameObject, 0.25f, 0.1f, 0, CoordSpace.WorldCoords); controls_mouse.Name = "controls_mouse"; controls_mouse.Enabled = false; cockpit.AddUIElement(controls_mouse, true); HUDButton controls_gamepad = HUDBuilder.CreateIconClickButton( new HUDShape(HUDShapeType.Rectangle, 0.7f * text_scale, 0.7f * text_scale) { UseUVSubRegion = false }, 3.0f, angle_right, 0.0f, "simplex_startup/controls_gamepad"); UnityUtil.TranslateInFrame(controls_gamepad.RootGameObject, 0.25f, 0.1f, 0, CoordSpace.WorldCoords); controls_gamepad.Name = "controls_gamepad"; controls_gamepad.Enabled = false; cockpit.AddUIElement(controls_gamepad, true); controls_gamepad.RootGameObject.Hide(); HUDToggleButton mouse_button = HUDBuilder.CreateToggleButton( new HUDShape(HUDShapeType.Rectangle, 1.0f, 1.0f), 2.9f, angle_right, 0.0f, "simplex_startup/mouse", "simplex_startup/mouse_disabled"); UnityUtil.TranslateInFrame(mouse_button.RootGameObject, -0.5f, -1.0f, 0, CoordSpace.WorldCoords); mouse_button.Name = "mouse_button"; cockpit.AddUIElement(mouse_button, true); HUDToggleButton gamepad_button = HUDBuilder.CreateToggleButton( new HUDShape(HUDShapeType.Rectangle, 1.0f, 1.0f), 2.9f, angle_right, 0.0f, "simplex_startup/gamepad_with_labels", "simplex_startup/gamepad_disabled"); UnityUtil.TranslateInFrame(gamepad_button.RootGameObject, 0.5f, -1.0f, 0, CoordSpace.WorldCoords); gamepad_button.Name = "gamepad_button"; cockpit.AddUIElement(gamepad_button, true); HUDToggleGroup group = new HUDToggleGroup(); group.AddButton(mouse_button); group.AddButton(gamepad_button); group.Selected = 0; group.OnToggled += (sender, nSelected) => { if (nSelected == 0) { controls_gamepad.RootGameObject.Hide(); controls_mouse.RootGameObject.Show(); } else { controls_gamepad.RootGameObject.Show(); controls_mouse.RootGameObject.Hide(); } }; // setup key handlers (need to move to behavior...) cockpit.AddKeyHandler(new SplashScreenKeyHandler(cockpit.Context)); cockpit.InputBehaviors.Add(new VRMouseUIBehavior(cockpit.Context) { Priority = 0 }); cockpit.InputBehaviors.Add(new VRGamepadUIBehavior(cockpit.Context) { Priority = 0 }); cockpit.InputBehaviors.Add(new VRSpatialDeviceUIBehavior(cockpit.Context) { Priority = 0 }); }