protected void InstantiateMapPrefab(int x, int y, MapObjectDepth depth, GameObject prefab)
    {
        // Select a tile from the load strings array and instantiate it
        Vector2    offset = new Vector2(0.0f, HeightField[y * Width + x] * 0.4f);
        GameObject go     = Instantiate(prefab, GetTileLowerLeft(x, y) + offset, Quaternion.identity) as GameObject;

        // Set the tile sprite's render layer and sorting order
        SpriteRenderer[] renderers = go.GetComponentsInChildren <SpriteRenderer>();
        foreach (SpriteRenderer renderer in renderers)
        {
            renderer.sortingLayerName = "Tiles";
            renderer.sortingOrder     = (Height - y) * 10 + (int)depth;
        }
    }
    protected void InstantiateMapPrefab(int x, int y, MapObjectDepth depth, GameObject prefab)
    {
        // Select a tile from the load strings array and instantiate it
        Vector2 offset = new Vector2(0.0f, HeightField[y * Width + x] * 0.4f);
        GameObject go = Instantiate(prefab, GetTileLowerLeft(x, y) + offset, Quaternion.identity) as GameObject;

        // Set the tile sprite's render layer and sorting order
        SpriteRenderer[] renderers = go.GetComponentsInChildren<SpriteRenderer>();
        foreach (SpriteRenderer renderer in renderers)
        {
            renderer.sortingLayerName = "Tiles";
            renderer.sortingOrder = (Height - y) * 10 + (int)depth;
        }
    }