private IEnumerator StartGameCoroutine()
    {
        yield return(Yielders.Get(1f));

        chosenPoint      = gkpList[Random.Range(0, gkpList.Count)];
        calloutText.text = "(" + chosenPoint.xCoord + ", " + chosenPoint.yCoord + ")";

        MoveCamera(cameraTopPosition, true);
    }
    public void CheckSuccess(GoalKickPoint p)
    {
        if (ballKicked)
        {
            return;
        }

        ballKicked = true;

        Vector3 pos = new Vector3(p.gameObject.transform.position.x, ball.transform.position.y, p.gameObject.transform.position.z);

        if (p.id == chosenPoint.id)
        {
            Success(pos);
        }
        else
        {
            Failure(pos);
        }
    }
    private void InitialSetup()
    {
        calloutText.gameObject.SetActive(false);

        for (int i = 0; i <= GRID_HEIGHT; i++)
        {
            for (int j = 0; j <= GRID_WIDTH; j++)
            {
                GameObject go = (GameObject)Instantiate(goalKickPoint, gridStartPosition.position + new Vector3(j + (j * GRID_SIZE), 0, i + (i * GRID_SIZE)), Quaternion.identity);
                go.transform.parent = goalKickPointParent;

                GoalKickPoint gkp = go.GetComponent <GoalKickPoint>();
                gkp.SetupPoint((i * GRID_WIDTH) + j + i, j, i);
                go.transform.name = gkp.id.ToString();

                go.SetActive(false);

                gkpList.Add(gkp);
            }
        }
    }