/// <summary>
    /// 初始化
    /// </summary>
    private void Init()
    {
        //计算格子网格的长度(纵向的格子数量)
        grid_Length = (int)(-cubeOriginPos * transform.localScale.x * 2 / cubeOriginScale);
        //计算格子网格的宽度(横向的格子数量)
        grid_Width = (int)(-cubeOriginPos * transform.localScale.z * 2 / cubeOriginScale);

        //实例化二维数组
        allCubes = new CubeGrid[grid_Length, grid_Width];

        for (int i = 0; i < grid_Length; i++)
        {
            for (int j = 0; j < grid_Width; j++)
            {
                //计算每个格子的x坐标
                float x = cubeOriginPos * transform.localScale.x + cubeOriginScale * i + cubeOriginScale / 2;
                //计算每个格子的z坐标
                float z = cubeOriginPos * transform.localScale.z + cubeOriginScale * j + cubeOriginScale / 2;
                //生成格子
                GameObject currentGrid = PrefabManager.GetInstance().
                                         CreateGameObjectByPrefab("CubeGrid",
                                                                  new Vector3(x, 0, z), Quaternion.identity);
                //获取格子组件
                CubeGrid cubeGrid = currentGrid.GetComponent <CubeGrid>();
                //设置格子所对应的坐标【3,4】
                cubeGrid.x = i;
                cubeGrid.z = j;
                //随机一个数
                int randomNum = Random.Range(1, 101);
                //如果当前随机数进入障碍物概率范围
                if (randomNum <= obsticleScale)
                {
                    //设置格子类型为障碍物
                    cubeGrid.SetGridType(GridType.Obsticle);
                }
                //放置到二维数组
                allCubes[i, j] = cubeGrid;
            }
        }

        //通过数组找到起点,并设置为起点类型
        allCubes[(int)startPos.x,
                 (int)startPos.y].SetGridType(GridType.Start);
        //通过数组找到终点,并设置为终点类型
        allCubes[(int)endPos.x,
                 (int)endPos.y].SetGridType(GridType.End);
    }