OnBoardChange
How do I use On Board Change
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
Line | Code | Ex.. |
---|---|---|
22 |
public void Init(Action |
1 |
121 | if (onBoardChange != null) | 2 |
105 | board.Init(OnBoardChange); | 3 |
169 | private void OnBoardChange(Seed player, int row, int col) | 4 |
File name: Board.cs
Copy
22 public void Init(Action23 {
24 CreateCells();
25 SetPlayer(Seed.Empty);
26 onBoardChange = onBoardChangeAction;
27 }
File name: Board.cs
Copy
114 private void OnCellClick(Cell cell)
115 {
116 if (currentPlayer != Seed.Empty && cell.IsEmpty)
117 {
118 cell.Set(currentPlayer);
119 lastChangedCell = cell;
120
121 if (onBoardChange != null)
122 {
123 onBoardChange(currentPlayer, cell.Row, cell.Col);
124 }
125 }
126 }
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
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 }
OnBoardChange 158 lượt xem
Gõ tìm kiếm nhanh...