예제 #1
0
    private void OnGUI()
    {
        var cellular = new CellularAutomata1d7_3();

        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();
    }
예제 #2
0
    IEnumerator AnimateCellularRow()
    {
        var cellular = new CellularAutomata1d7_3();
        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));
        }
    }