// Use this for initialization void Start() { _fishes = new List<Boid2D>(); for (int i = 0; i < nFishes; i++) { var f = (GameObject)Instantiate(fishfab); f.transform.parent = transform; var b = f.GetComponent<Boid2D>(); b.velocity = maxSpeed * Random.insideUnitCircle.normalized; _fishes.Add(b); } _fieldBounds = field.collider.bounds; _positions = new Vector3[nFishes]; _ids = new int[_fishes.Count]; for (int i = 0; i < nFishes; i++) { _positions[i] = _fishes[i].position; _ids[i] = i; } _grid = new UniformGrid2DFixed(); _grid.Build(_positions, _ids, nFishes); }
// Use this for initialization void Start() { _fishes = new List<Vehicle3D>(); for (int i = 0; i < nFishes; i++) { var f = (GameObject)Instantiate(fishfab); f.transform.parent = transform; var b = f.GetComponent<Vehicle3D>(); b.velocity = maxSpeed * Random.insideUnitSphere.normalized; _fishes.Add(b); } if (field != null) _fieldBounds = field.collider.bounds; _positions = new Vector3[nFishes]; _ids = new int[_fishes.Count]; for (int i = 0; i < nFishes; i++) { _positions[i] = _fishes[i].position; _ids[i] = i; } _grid = new UniformGrid3DFixed(); _grid.Build(_positions, _ids, nFishes); _spheres = System.Array.ConvertAll(spheres, (t) => new Sphere(){ position = t.position, radius = t.localScale.x * 0.5f }); }