public void EnableVirtualControl(ControllerTouchscreen player) { Debug.Assert(player.layout < virtualControls.Length, "Inappropriate layout index " + player.layout + " for controller " + player.name); VirtualControl virtualControl = virtualControls[player.layout]; virtualControl.gameObject.SetActive(true); player.SetVirtualControl(virtualControl); }
public void SwitchMenu(Menu menu) { currentMenu = menu; descriptionBackground.SetActive(menu == Menu.DESCRIPTION); robotNameText.gameObject.SetActive(menu == Menu.DESCRIPTION); robotDetailsText.gameObject.SetActive(menu == Menu.DESCRIPTION); viewDragArea.gameObject.SetActive(menu == Menu.VIEW); viewOptionsLeftPanel.SetActive(menu == Menu.VIEW); viewOptionsRightPanel.SetActive(menu == Menu.VIEW); menuScene.backgroundCamera.gameObject.SetActive(menu != Menu.PLAYTEST && menu != Menu.VIEW); menuScene.playtestCamera.gameObject.SetActive(menu == Menu.PLAYTEST); menuScene.viewCamera.gameObject.SetActive(menu == Menu.VIEW); virtualControl.gameObject.SetActive(menu == Menu.PLAYTEST && GameSettings.isTouchscreenSupported); if (!currentRobotPrefab) { SelectRandomRobot(); } switch (menu) { case Menu.DESCRIPTION: { GameSettings.mainPlayer.SetMode(Controller.Mode.MENU); robotNameText.text = currentRobotPrefab.localizedName.Get(GameSettings.language); robotDetailsText.text = currentRobotPrefab.localizedDetails.Get(GameSettings.language); break; } case Menu.PLAYTEST: { Debug.Assert(GameSettings.mainPlayer.unit, "Main player unit is not linked to playtest robot"); GameSettings.mainPlayer.SetMode(Controller.Mode.TEST); if (GameSettings.isTouchscreenSupported) { ControllerTouchscreen touchscreen = GameSettings.mainPlayer.GetComponent <ControllerTouchscreen>(); if (touchscreen) { touchscreen.SetVirtualControl(virtualControl); } } break; } case Menu.VIEW: { GameSettings.mainPlayer.SetMode(Controller.Mode.VIEW); GameSettings.mainPlayer.controllingCamera = menuScene.viewCamera; GameSettings.mainPlayer.viewCameraTarget = menuScene.viewSpawner.transform; break; } } }