GameState









How do I use Game State
Below are practical examples compiled from projects for learning and reference purposes

Featured Snippets


File name: Result.cs Copy
41         private void OnGameResult(Game game)
42         {
43             switch (game.CurrentState)
44             {
45                 case GameState.CrossWin:
46                     label.text = "X WIN!";
47                     break;
48                 case GameState.NoughtWin:
49                     label.text = "O WIN!";
50                     break;
51                 case GameState.Draw:
52                     label.text = "DRAW!";
53                     break;
54             }
55
56             Show();
57         }
File name: Game.cs Copy
17         public GameState CurrentState { get; private set; }
File name: Game.cs Copy
20         {
21             get { return CurrentState == GameState.Playing; }
22         }
File name: Game.cs Copy
28         public void PlayOnline()
29         {
30             CurrentState = GameState.Lobby;
31             NetworkService.Connect();
32         }
File name: Game.cs Copy
40         public void NewGame()
41         {
42             board.gameObject.SetActive(true);
43             board.Clear();
44             board.SetPlayer(Seed.Cross);
45             CurrentState = GameState.Playing;
46
47             if (NetworkService.IsConnected)
48             {
49                 if (NetworkService.IsMaster)
50                 {
51                     Player1.Name = NetworkService.PlayerName;
52                     Player2.Name = NetworkService.OpponentName;
53
54                     Player1.Type = Seed.Cross;
55                     Player2.Type = Seed.Nought;
56                     board.SetPlayer(Seed.Cross);
57
58                     NetworkService.SendNewGameStarted();
59                 }
60                 else
61                 {
62                     Player1.Name = NetworkService.OpponentName;
63                     Player2.Name = NetworkService.PlayerName;
64
65                     Player1.Type = Seed.Nought;
66                     Player2.Type = Seed.Cross;
67                     board.SetPlayer(Seed.Empty);
68                 }
69             }
70
71             OnGameStartSignal.Dispatch(this);
72         }
File name: Game.cs Copy
74         public void Quit()
75         {
76             CurrentState = GameState.MainMenu;
77             HideBoard();
78             OnGameQuitSignal.Dispatch();
79
80             if (NetworkService.IsConnected)
81             {
82                 NetworkService.Disconnect();
83             }
84         }
File name: Game.cs Copy
97         protected override void Start()
98         {
99             base.Start();
100
101             Reset();
102
103             CurrentState = GameState.MainMenu;
104
105             board.Init(OnBoardChange);
106             board.SetPlayer(Seed.Empty);
107             board.gameObject.SetActive(false);
108
109             NetworkService.OnAllPlayersConnectedSignal.AddListener(OnAllPlayersConnected);
110             NetworkService.OnDisconnectedFromMasterSignal.AddListener(OnDisconnectedFromMaster);
111             NetworkService.OnRemoteBoardChangeSignal.AddListener(OnRemoteBoardChange);
112         }
File name: Game.cs Copy
125         protected override void Update()
126         {
127             base.Update();
128
129             if (Input.GetKeyDown(KeyCode.Escape))
130             {
131                 if (CurrentState == GameState.MainMenu)
132                 {
133                     Application.Quit();
134                 }
135                 else
136                 {
137                     Quit();
138                 }
139             }
140         }
File name: Game.cs Copy
169         private void OnBoardChange(Seed player, int row, int col)
170         {
171             Seed nextPlayer = Seed.Empty;
172
173             if (board.HasWon(player))
174             {
175                 switch (player)
176                 {
177                     case Seed.Cross:
178                         CurrentState = GameState.CrossWin;
179                         Player1.Score++;
180                         break;
181                     case Seed.Nought:
182                         CurrentState = GameState.NoughtWin;
183                         Player2.Score++;
184                         break;
185                 }
186
187                 OnGameResultSignal.Dispatch(this);
188             }
189             else if (board.IsDraw())
190             {
191                 CurrentState = GameState.Draw;
192                 OnGameResultSignal.Dispatch(this);
193             }
194             else
195             {
196                 nextPlayer = player == Seed.Cross ? Seed.Nought : Seed.Cross;
197             }
198
199             board.SetPlayer(nextPlayer);
200
201             if (NetworkService.IsConnected && player == Player1.Type)
202             {
203                 board.SetPlayer(Seed.Empty);
204                 NetworkService.SendBoardChange(player, row, col);
205             }
206         }
File name: IGameService.cs Copy
11         GameState CurrentState { get; }

Download file with original file name:GameState

GameState 129 lượt xem

Gõ tìm kiếm nhanh...