Cross









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

Featured Snippets


File name: PickupController.cs Copy
151     void Update()
152     {
153         if (isControllable)
154         {
155             if (Input.GetButtonDown("Jump"))
156             {
157                 lastJumpButtonTime = Time.time;
158             }
159
160             UpdateSmoothedMovementDirection();
161
162             // Apply gravity
163             // - extra power jump modifies gravity
164             // - controlledDescent mode modifies gravity
165             ApplyGravity();
166
167             // Apply jumping logic
168             ApplyJumping();
169
170
171             // Calculate actual motion
172             Vector3 movement = moveDirection * moveSpeed + new Vector3(0, verticalSpeed, 0) + inAirVelocity;
173             movement *= Time.deltaTime;
174
175             //Debug.Log(movement.x.ToString("0.000") + ":" + movement.z.ToString("0.000"));
176
177             // Move the controller
178             CharacterController controller = GetComponent();
179             collisionFlags = controller.Move(movement);
180
181         }
182
183         // PUN: if a remote position is known, we smooth-move to it (being late(r) but smoother)
184         if (this.remotePosition != Vector3.zero)
185         {
186             transform.position = Vector3.Lerp(transform.position, this.remotePosition, Time.deltaTime * this.RemoteSmoothing);
187         }
188
189         velocity = (transform.position - lastPos)*25;
190
191         // ANIMATION sector
192         if (_animation)
193         {
194             if (_characterState == PickupCharacterState.Jumping)
195             {
196                 if (!jumpingReachedApex)
197                 {
198                     _animation[jumpPoseAnimation.name].speed = jumpAnimationSpeed;
199                     _animation[jumpPoseAnimation.name].wrapMode = WrapMode.ClampForever;
200                     _animation.CrossFade(jumpPoseAnimation.name);
201                 }
202                 else
203                 {
204                     _animation[jumpPoseAnimation.name].speed = -landAnimationSpeed;
205                     _animation[jumpPoseAnimation.name].wrapMode = WrapMode.ClampForever;
206                     _animation.CrossFade(jumpPoseAnimation.name);
207                 }
208             }
209             else
210             {
211                 if (_characterState == PickupCharacterState.Idle)
212                 {
213                     _animation.CrossFade(idleAnimation.name);
214                 }
215                 else if (_characterState == PickupCharacterState.Running)
216                 {
217                     _animation[runAnimation.name].speed = runMaxAnimationSpeed;
218                     if (this.isControllable)
219                     {
220                         _animation[runAnimation.name].speed = Mathf.Clamp(velocity.magnitude, 0.0f, runMaxAnimationSpeed);
221                     }
222                     _animation.CrossFade(runAnimation.name);
223                 }
224                 else if (_characterState == PickupCharacterState.Trotting)
225                 {
226                     _animation[walkAnimation.name].speed = trotMaxAnimationSpeed;
227                     if (this.isControllable)
228                     {
229                         _animation[walkAnimation.name].speed = Mathf.Clamp(velocity.magnitude, 0.0f, trotMaxAnimationSpeed);
230                     }
231                     _animation.CrossFade(walkAnimation.name);
232                 }
233                 else if (_characterState == PickupCharacterState.Walking)
234                 {
235                     _animation[walkAnimation.name].speed = walkMaxAnimationSpeed;
236                     if (this.isControllable)
237                     {
238                         _animation[walkAnimation.name].speed = Mathf.Clamp(velocity.magnitude, 0.0f, walkMaxAnimationSpeed);
239                     }
240                     _animation.CrossFade(walkAnimation.name);
241                 }
242
243                 if (_characterState != PickupCharacterState.Running)
244                 {
245                     _animation[runAnimation.name].time = 0.0f;
246                 }
247             }
248         }
249         // ANIMATION sector
250
251         // Set rotation to the move direction
252         if (IsGrounded())
253         {
254             // a specialty of this controller: you can disable rotation!
255             if (DoRotate)
256             {
257                 transform.rotation = Quaternion.LookRotation(moveDirection);
258             }
259         }
260         else
261         {
262             /* This causes choppy behaviour when colliding with SIDES
263              * Vector3 xzMove = velocity;
264             xzMove.y = 0;
265             if (xzMove.sqrMagnitude > 0.001f)
266             {
267                 transform.rotation = Quaternion.LookRotation(xzMove);
268             }*/
269         }
270
271         // We are in jump mode but just became grounded
272         if (IsGrounded())
273         {
274             lastGroundedTime = Time.time;
275             inAirVelocity = Vector3.zero;
276             if (jumping)
277             {
278                 jumping = false;
279                 SendMessage("DidLand", SendMessageOptions.DontRequireReceiver);
280             }
281         }
282
283         lastPos = transform.position;
284     }
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: Cell.cs Copy
34         public void Set(Seed seed)
35         {
36             Content = seed;
37
38             switch (seed)
39             {
40                 case Seed.Empty:
41                     spriteCross.SetActive(false);
42                     spriteNought.SetActive(false);
43                     break;
44                 case Seed.Cross:
45                     spriteCross.SetActive(true);
46                     spriteNought.SetActive(false);
47                     break;
48                 case Seed.Nought:
49                     spriteCross.SetActive(false);
50                     spriteNought.SetActive(true);
51                     break;
52             }
53         }
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
142         private void Reset()
143         {
144             Player1 = new Player("Player X", 0, Seed.Cross);
145             Player2 = new Player("Player O", 0, Seed.Nought);
146         }
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: CrossMovement.cs Copy
8  public CrossMovement(GCPlayer player, Piece piece) : base(player,piece) {
9   BoundComputations += ComputeBound;
10  }
File name: Creator.cs Copy
7  public static IPieceMovement CreatePieceMovement(MovementType movementType, GCPlayer player, Piece piece) {
8   switch (movementType) {
9    case MovementType.KING:
10     return new KingMovement(player, piece);
11    case MovementType.PAWN:
12     return new PawnMovement(player, piece);
13    case MovementType.ROOK:
14     return new RookMovement(player, piece);
15    case MovementType.BISHOP:
16     return new BishopMovement(player, piece);
17    case MovementType.QUEEN:
18     return new QueenMovement(player, piece);
19    case MovementType.KNIGHT:
20     return new KnightMovement(player, piece);
21    case MovementType.CIRCLE:
22     return new CircleMovement(player, piece);
23    case MovementType.CROSS:
24     return new CrossMovement(player, piece);
25    case MovementType.NONE:
26    default:
27     return new NoMovement(player, piece);
28   }
29  }
File name: Rules.cs Copy
24  public static bool CheckKing(GCPlayer player, Node checkedByNode, Node checkedNode) {
25   if (checkedNode.Piece.PieceType == PieceType.CROSS) {
26    GameManager.Instance.Opponent(player).CheckedBy = checkedByNode.Piece;
27    //checkedPiece.Node.HighlightCheck(); //Experimental
28    //checkedBy.Node.HighlightCheck(); //Experimental
29    return true;
30   }
31   return false;
32  }

Download file with original file name:Cross

Cross 120 lượt xem

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