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;
                }
            }
        }