private void OnGUI() { var cellular = new CellularAutomata1d(); int genCount = 20; GUI.skin = UISkin; GUILayout.BeginArea(new Rect(20, 20, 200, 200)); if (GUILayout.Button("Animate Cellular Row")) { StartCoroutine(AnimateCellularRow()); } if (generation == genCount) { foreach (var instance in _boxes) { Destroy(instance); } generation = 0; StartCoroutine(AnimateCellularRow()); } GUILayout.EndArea(); }
IEnumerator AnimateCellularRow() { var cellular = new CellularAutomata1d(); var length = cellular.Cells.Length; int genCount = 20; for (int i = 0; i < genCount; i++) { for (int j = 0; j < length; j++) { if (cellular.Cells[j] == 1) { AddBoxToGrid(i, j, length); } } generation++; cellular.NextGeneration(); yield return(new WaitForSeconds(0.25f)); } }