Пример #1
0
 void Start()
 {
     changeControl = 1;
     for (int i = 0; i < spawnAmount / _initialSchoolSize; ++i)
     {
         var list = _spawner.Spawn(_avoidance, _initialSchoolSize, _initialSchoolRadius);
         foreach (GameObject boid in list)
         {
             boid.GetComponent <LookAtVelocity>().SetSpeed(_rotationSpeed);
             boid.GetComponent <VelocityComponent>().MinMagnitude = _minSpeed;
             boid.GetComponent <VelocityComponent>().MaxMagnitude = _maxSpeed;
             boid.GetComponent <WrapSpace>().SetBoundFromTransform(transform);
             var neighborComponent = boid.GetComponent <BoidNeighbor>();
             neighborComponent.SetParams(_alignment, _cohesion, _seperation);
             _boids.Add(neighborComponent);
             if (_prefabs.Length > 0)
             {
                 int fishType = (_maxFishTypes > 0) ? i % Mathf.Min(_prefabs.Length, _maxFishTypes) : i % _prefabs.Length;
                 neighborComponent.fishType  = fishType;
                 neighborComponent.avoidance = _avoidance;
                 var fishObj = Instantiate(_prefabs[fishType], boid.transform) as GameObject;
                 fishObj.transform.localPosition = Vector3.zero;
                 fishObj.transform.localRotation = Quaternion.Euler(_fishRotation);
                 fishObj.transform.localScale    = _fishScale * Vector3.one;
             }
         }
     }
     SetBoidParams();
 }