using UnityEngine; using Random = UnityEngine.Random; namespace Components.TileObjects { public class Obstacle : TileObject { [SerializeField] private ObstaclePillar[] tiles; protected override void ReleaseReferences() { tiles = null; } public override void Initialize((int, int) spawnRange) { ShuffleTiles(); var activeCount = Random.Range(spawnRange.Item1, spawnRange.Item2 + 1); for (var i = 0; i < activeCount; i++) tiles[i].AnimatePillar(); } private void ShuffleTiles() { var length = tiles.Length; for (var i = 0; i < length; i++) { var rnd = Random.Range(0, length); (tiles[i], tiles[rnd]) = (tiles[rnd], tiles[i]); } } public override void ResetObject() { foreach (var tile in tiles) tile.StopAnimation(); } } }