private void Start() { _netService = new MultiPlayerNetService(_mainThreadActions); _netService.OnStartGame.Subscribe(StartMultiplayerGame).DisposeBy(this); _appData.OnAppClose.Subscribe(_netService.Close).DisposeBy(this); _menu.Bind(_gameData, _startSingleGame, _appData, _netService); _gameView.gameObject.SetActive(false); }
private System.Collections.IEnumerator CheatSendInput(MultiPlayerNetService netService) { var inputListener = new PointerPositionListener(); var delay = new WaitForSeconds(.2f); yield return(null); var gameView = Launcher.GetFieldValue <GameView>("_gameView"); while (gameView.gameObject.activeSelf) { yield return(delay); var pos = inputListener.XPosition; var bw = new ByteWriter(5); bw.WriteByte(20); bw.WriteFloat(pos); netService.InvokeMethod("OnHostReceiveData", bw.Data, 5, CheatIP); } }
public void Bind(GameData gameData, Signal startSingleGame, AppData appData, MultiPlayerNetService netService) { _mainMenu.Init(gameData); appData.OnStartGame.Subscribe(() => { _mainMenu.SetObjectActive(false); _multiplayerMenu.SetObjectActive(false); }).DisposeBy(this); appData.OnGameOver.Subscribe(() => { _mainMenu.gameObject.SetActive(true); _multiplayerMenu.SetInteractable(true); }).DisposeBy(this); _mainMenu.OnStartGameClicked.Subscribe(startSingleGame.Dispatch).DisposeBy(this); _mainMenu.OnToggleRandomColorOnStart.Subscribe(value => gameData.RandomColorOnStart = value).DisposeBy(this); _mainMenu.OnBallColorChanged.Subscribe(value => gameData.BallColor = value).DisposeBy(this); _mainMenu.OnControlTypeChanged.Subscribe(value => gameData.ControlType = value).DisposeBy(this); _multiplayerMenu.OnHostButtonClicked.Subscribe(netService.StartHost).DisposeBy(this); _multiplayerMenu.OnConnectButtonClicked.Subscribe(netService.StartConnected).DisposeBy(this); _multiplayerMenu.OnBackButtonClicked.Subscribe(netService.Close).DisposeBy(this); }