public void Initialize(GroundLayer layer, int minimumLayerDepth, int width) { _layer = layer; BoxCollider2D collider = GetComponent <BoxCollider2D>(); collider.size = new Vector2(width, layer.Depth); collider.transform.position = new Vector2(collider.size.x / 2f, -collider.size.y / 2f + minimumLayerDepth + 1); }
private void GenerateLayer(TilemapData tilemapData, GroundLayer groundLayer, int leftBorder, int rightBorder, int minimumDepth, int maximumDepth) { List <float> resourceProbabilities = groundLayer.GetResourceProbabilitiesForGeneration(); bool tileSet; float prob; for (int x = leftBorder; x < rightBorder; ++x) { for (int y = minimumDepth; y > maximumDepth; --y) { tileSet = false; prob = Random.Range(0f, 1f); for (int j = 0; j < groundLayer.Resources.Count; ++j) { if (prob <= resourceProbabilities[j]) { tilemapData.SetTileId(x, y, groundLayer.Resources[j].Type.Id); tileSet = true; break; } } if (!tileSet) { tilemapData.SetTileId(x, y, groundLayer.DefaultTile.Id); } } } for (int y = minimumDepth; y > (maximumDepth + 1); --y) { for (int x = leftBorder; x < rightBorder; ++x) { prob = Random.Range(0f, 1f); if (prob <= groundLayer.ProbabilityOfEmptySpaces) { tilemapData.SetTileId(x, y, -1); } } } }
public void Initialize(GroundLayer layer) { _layer = layer; }