Ejemplo n.º 1
0
 /// <summary>
 /// Show or hide all hud menus
 /// </summary>
 /// <param name="enable"></param>
 public void EnableHud(bool enable)
 {
     if (enable)
     {
         PopAll();
         hud.Show();
     }
     else
     {
         hud.Hide();
     }
 }
Ejemplo n.º 2
0
        private void OnConnectionSucceed()
        {
            PlayerPrefs.SetString("username", username.text);
            PlayerPrefs.SetString("development", developmentToggle.On.ToString());
            // PlayerPrefs.SetString("serverIp", _serverIp.text);
            // PlayerPrefs.SetString("serverPort", _serverPort.text);
            PlayerPrefs.Save();

            // Next menu in any case, if Nakama auth failed => auth-less mode
            firstMenu.Hide();
            secondMenu.Show();

            // Unbind Submit from connect then
            // _submitAction.started -= Connect;
            _rtsControls.UI.Submit.performed -= Connect;

            // Just once (imagine "failed to reach server, going offline then at some point connect during the game")
            Sm.instance.ConnectionSucceed -= OnConnectionSucceed;
        }
Ejemplo n.º 3
0
        private void Start()
        {
            Gm.instance.State      = GameState.Menu;
            _notificationText      = notification.GetComponentInChildren <TextMeshProUGUI>();
            _notificationJoinDelay = notification.GetComponentInChildren <LeanJoinDelay>();
            _serverIp   = serverIpGameObject.GetComponent <TMP_InputField>();
            _serverPort = serverPortGameObject.GetComponent <TMP_InputField>();
            playButton.OnClick.AddListener(() => Connect(new InputAction.CallbackContext()));
            _rtsControls = new Rts();
            _rtsControls.Enable();
            _rtsControls.UI.Submit.performed += Connect;
            debugToggle.onValueChanged.AddListener(Advanced);
            developmentToggle.On = bool.Parse(PlayerPrefs.GetString("development", "false"));
            developmentToggle.OnOff.AddListener(() =>
            {
                PlayerPrefs.SetString("serverPort", "30020");
            });
            developmentToggle.OnOn.AddListener(() =>
            {
                PlayerPrefs.SetString("serverPort", "30021");
            });
            username.text = PlayerPrefs.GetString("username");
            // _serverIp.text = PlayerPrefs.GetString("serverIp");
            // _serverPort.text = PlayerPrefs.GetString("serverPort");

            singlePlayerButton.OnClick.AddListener(() =>
            {
                secondMenu.Hide();
                background.Hide();
                Gm.instance.State = GameState.Play;
                settings.Show();
            });
            multiplayerButton.OnClick.AddListener(() =>
                                                  throw new NotImplementedException("Online mode in maintenance")); // TODO next

            // Pointless for mobile
#if UNITY_STANDALONE || UNITY_EDITOR
            // Lock cursor withing window in standalone
            Cursor.lockState = CursorLockMode.Confined;

            void ReLock(InputAction.CallbackContext _)
            {
                Screen.fullScreen = true;
                Cursor.lockState  = CursorLockMode.Confined;
                ShowNotification("Cursor locked again");
                _rtsControls.Player.Fire.performed -= ReLock;
            }

            // Basically copy paste of how Google Stadia handle full screen :D
            _rtsControls.Player.DoubleCancel.performed += ctx =>
            {
                ShowNotification($"Press and hold {_rtsControls.Player.LongCancel.activeControl.displayName}" +
                                 $" to unlock the cursor from the window");
            };
            // Can unlock cursor from the window in standalone by pressing escape
            _rtsControls.Player.LongCancel.performed += ctx =>
            {
                Screen.fullScreen = false;
                Cursor.lockState  = CursorLockMode.None;
                ShowNotification("Cursor unlocked from the window," +
                                 " click inside the window to re-lock the cursor");
                // Can re-lock cursor from the window in standalone by pressing escape
                _rtsControls.Player.Fire.performed += ReLock;
            };
#elif UNITY_IOS || UNITY_ANDROID
            UnityEngine.InputSystem.EnhancedTouch.EnhancedTouchSupport.Enable();
#endif


            Sm.instance.ConnectionSucceed += OnConnectionSucceed;
        }