void Update() { float calcDist = Mathf.Pow(.5f, 2f); if (tree.Count < 200) { for (var i = walkers.Count - 1; i >= 0; i--) { Walker w = walkers[i]; w.Walk(); for (var j = tree.Count - 1; j >= 0; j--) { if (QuickDistance(w.Position, tree[j].Position) < calcDist) { tree.Add(w); w.Attach(tree[j].Position); walkers.RemoveAt(i); walkers.Add(CreateWalker()); break; } } // if (w.Position.y < 0) // { // Destroy(w.dot); // walkers.RemoveAt(i); // } } } else if (walkers.Count > 0) { for (var i = walkers.Count - 1; i >= 0; i--) { DestroyImmediate(walkers[i].dot, true); walkers.RemoveAt(i); } } }