OnGameResult
How do I use On Game Result
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
File name: Hud.cs
Copy
29 protected override void Start()
30 {
31 base.Start();
32
33 GameService.OnGameStartSignal.AddListener(OnGameStart);
34 GameService.OnGameResultSignal.AddListener(UpdateGameScore);
35 GameService.OnGameQuitSignal.AddListener(Hide);
36 }
File name: Hud.cs
Copy
38 protected override void OnDestroy()
39 {
40 base.OnDestroy();
41
42 GameService.OnGameStartSignal.RemoveListener(OnGameStart);
43 GameService.OnGameResultSignal.RemoveListener(UpdateGameScore);
44 GameService.OnGameQuitSignal.RemoveListener(Hide);
45 }
File name: Result.cs
Copy
23 protected override void Start()
24 {
25 base.Start();
26
27 GameService.OnGameResultSignal.AddListener(OnGameResult);
28 NetworkService.OnNewGameStartedSignal.AddListener(OnNewGame);
29 NetworkService.OnDisconnectedFromMasterSignal.AddListener(Hide);
30 }
File name: Result.cs
Copy
32 protected override void OnDestroy()
33 {
34 base.OnDestroy();
35
36 GameService.OnGameResultSignal.RemoveListener(OnGameResult);
37 NetworkService.OnNewGameStartedSignal.RemoveListener(OnNewGame);
38 NetworkService.OnDisconnectedFromMasterSignal.RemoveListener(Hide);
39 }
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
86 protected override void Awake()
87 {
88 base.Awake();
89
90 OnGameStartSignal = new Signal
91 OnGameResultSignal = new Signal
92 OnGameQuitSignal = new Signal();
93
94 ServiceLocator.AddService
95 }
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 }
OnGameResult 145 lượt xem
Gõ tìm kiếm nhanh...