using UnityEngine; using Random = UnityEngine.Random; namespace Components.TileObjects { public class Collectible : TileObject { [SerializeField] private CollectibleLane[] lanes; protected override void ReleaseReferences() { lanes = null; } public override void Initialize((int, int) spawnRange) { var activeLanes = Random.Range(spawnRange.Item1, spawnRange.Item2 + 1); // var lane = Random.Range(-2, 3) * .11f; // transform.DOLocalMoveX(lane, 0f); for (var i = 0; i < lanes.Length; i++) lanes[i].InitializeLane(i < activeLanes); if (activeLanes < 5) ShuffleLanes(); } private void ShuffleLanes() { var length = lanes.Length; for (var i = 0; i < length; i++) { var rnd = Random.Range(0, length); (lanes[i].transform.localPosition, lanes[rnd].transform.localPosition) = (lanes[rnd].transform.localPosition, lanes[i].transform.localPosition); (lanes[i], lanes[rnd]) = (lanes[rnd], lanes[i]); } } } }