IEnumerator InstantiateTiles()
    {
        for (int x = 0; x < mapWidth; x++)
        {
            for (int y = 0; y < mapHeight; y++)
            {
                char       groundTile = groundGrid[x, y];
                GameObject tile       = null;

                tile = GameObject.Instantiate(GetTileObj(groundGrid[x, y]));

                tile.transform.position = new Vector2(16 * x, -16 * y);



                tile = GetTileObj(walkLevelGrid[x, y], 1);
                if (tile != null)
                {
                    SetSortLayerByY sslby = tile.GetComponent <SetSortLayerByY>();
                    tile = GameObject.Instantiate(tile);
                    if (sslby)
                    {
                        tile.transform.position = new Vector2(16 * x + sslby.spriteOffsetX, -16 * y + sslby.spriteOffsetY);
                    }
                    else
                    {
                        tile.transform.position = new Vector2(16 * x, -16 * y);
                    }
                }

                tile = GetTileObj(dontCheckGrid[x, y], 1);
                if (tile)
                {
                    tile = GameObject.Instantiate(tile);

                    tile.transform.position = new Vector2(16 * x, -16 * y);
                }
            }
            yield return(null);
        }
    }
Пример #2
0
    IEnumerator InstantiateTiles()
    {
        instantiating = true;
        for (int x = 0; x < mapWidth; x++)
        {
            for (int y = 0; y < mapHeight; y++)
            {
                GameObject tile = null;
                tile = GetTileObj(groundGrid[x, y], 0);
                if (tile != null)
                {
                    tile = GameObject.Instantiate(tile, transform);

                    tile.transform.position = new Vector2(16 * x, -16 * y);
                    if (instantiatedTiles[x, y] == null)
                    {
                        instantiatedTiles[x, y] = new List <GameObject>();
                    }
                    instantiatedTiles[x, y].Add(tile);
                }


                tile = GetTileObj(walkLevelGrid[x, y], 1);
                if (tile != null && dontCheckGrid[x, y] == '\0' && walkLevelGrid[x, y] != '-')
                {
                    SetSortLayerByY sslby = tile.GetComponent <SetSortLayerByY>();
                    tile = GameObject.Instantiate(tile, transform);
                    if (sslby)
                    {
                        tile.transform.position = new Vector2(
                            16 * x + sslby.spriteOffsetX,
                            -16 * y + sslby.spriteOffsetY);
                    }
                    else
                    {
                        tile.transform.position = new Vector2(16 * x, -16 * y);
                    }
                    instantiatedTiles[x, y].Add(tile);
                }

                tile = null;
                tile = GetTileObj(dontCheckGrid[x, y], 2);
                if (tile != null)
                {
                    {
                        SetSortLayerByY sslby = tile.GetComponent <SetSortLayerByY>();
                        tile = GameObject.Instantiate(tile, transform);
                        if (sslby)
                        {
                            tile.transform.position = new Vector2(
                                16 * x + sslby.spriteOffsetX,
                                -16 * y + sslby.spriteOffsetY);
                        }
                        else
                        {
                            tile.transform.position = new Vector2(16 * x, -16 * y);
                        }
                        instantiatedTiles[x, y].Add(tile);
                    }
                }
            }
            yield return(null);
        }

        // Wrap the map so the knight is in the center
        int distanceFromCenter = mapWidth - (int)knightStartPoint.x;

        while (distanceFromCenter > 0)
        {
            WrapMapOneColumn(MoveDir.RIGHT);
            distanceFromCenter--;
        }
        instantiating = false;
    }