Exemplo n.º 1
0
    private void SpawnTile(TmxLayerTile tile, int x, int y, TmxLayer layer, GridLayerConfig gridLayerConfig, int layerNumber)
    {
        Transform container   = GetContainer("TileLayers");
        GridTile  spawnedTile = null;

        if (gridLayerConfig != null)
        {
            if (gridLayerConfig.OverridePrefab)
            {
                spawnedTile = Instantiate(gridLayerConfig.OverridePrefab, scene.transform);
            }
            else
            {
                spawnedTile = Instantiate(config.GridTilePrefab, scene.transform);
            }
        }
        else
        {
            spawnedTile = Instantiate(config.GridTilePrefab);
        }
        Sprite sprite = GetTileSprite(tile.Gid);

        ColliderConfig conf = GetColliderConfig(tile.Gid);

        spawnedTile.Initialize(sprite, x, y, gridLayerConfig, conf, layer.Name, layerNumber);
        GridTileLayerManager.main.AddTile(spawnedTile, layer.Name, container);
    }
Exemplo n.º 2
0
    public void Initialize(Sprite sprite, int x, int y, GridLayerConfig gridLayerConfig, ColliderConfig colliderConfig, string layerName, int layerNumber)
    {
        this.x         = x;
        this.y         = y;
        spriteRenderer = GetComponentInChildren <SpriteRenderer>();
        if (spriteRenderer != null)
        {
            spriteRenderer.sprite = sprite;
            //spriteRenderer.sortingOrder = layerNumber;
            spriteRenderer.sortingOrder = -(y * 2);
            if (gridLayerConfig != null && gridLayerConfig.OverrideMaterial != null)
            {
                spriteRenderer.material = gridLayerConfig.OverrideMaterial;
            }
        }

        if (layerName == "obstacles")
        {
            foreach (ColliderParams param in colliderConfig.Colliders)
            {
                BoxCollider col = gameObject.AddComponent <BoxCollider>();
                col.center = new Vector3(param.centerX, param.centerY);
                col.size   = new Vector3(param.width, param.height, 2f);
            }
            gameObject.layer = LayerMask.NameToLayer("Wall");
            //spriteRenderer.sortingOrder = -(y * 10);
            //spriteRenderer.sortingOrder = layerNumber;
            gameObject.layer = LayerMask.NameToLayer("Wall");
            //spriteRenderer.sortingOrder;
        }
        else if (layerName == "ground")
        {
            spriteRenderer.sortingOrder = -2000;
        }
        else
        {
            if (spriteRenderer == null)
            {
                print("asd");
            }
            if (layerName != "decorations")
            {
                spriteRenderer.sortingOrder += layerNumber + 1;
            }
            else
            {
                spriteRenderer.sortingOrder += 1;
            }
        }

        transform.position = new Vector2(x, y);
    }
Exemplo n.º 3
0
    private void DrawLayers(TmxMap map)
    {
        int mapHeight   = map.Height;
        int layerNumber = 0;

        foreach (TmxLayer layer in map.Layers)
        {
            GridLayerConfig gridLayerConfig = GetGridLayerConfig(layer.Name);
            foreach (TmxLayerTile tile in layer.Tiles)
            {
                if (tile.Gid != 0)
                {
                    SpawnTile(tile, tile.X, -tile.Y, layer, gridLayerConfig, layerNumber);
                }
            }
            layerNumber += 1;
        }
    }