Пример #1
0
    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);
    }
Пример #2
0
    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;
        }
        }
    }