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); }
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); }
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; } }