OnBoardChange









How do I use On Board Change
Below are practical examples compiled from projects for learning and reference purposes

Featured Snippets


File name: Board.cs Copy
22         public void Init(Action onBoardChangeAction)
23         {
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...