private void InitializePawns() { if (_pawns != null) { ClearPawns(); } else { _pawns = new List <Pawn>(); } GlobalGameManager gameManager = GlobalGameManager.Instance; int playerCount = gameManager.PlayerCount; if (playerCount <= 0) { return; } for (int i = 0; i < playerCount; ++i) { GameObject go = GameObject.Instantiate(_pawnPrefab) as GameObject; Pawn pawn = go.GetComponent <Pawn>(); if (pawn != null) { _pawns.Add(pawn); Node currentNode = _boardManager.GetNode(gameManager.GetCurrentPawnPosition(i)); //Determine offset Vector2 offset = _offset; if (i % 2 == 0) { offset.x *= -1.0f; } if (playerCount <= 2) { offset.y = 0.0f; } else if (i >= 2) { offset.y *= -1.0f; } pawn.SetOffset(offset); pawn.SetColor(gameManager.GetPlayerColor(i)); pawn.SetOrderInLayer(-playerCount + i); pawn.SetCurrentNode(currentNode); } else { Debug.LogWarning("The pawn prefab doesn't contain the pawn script!"); return; } } }