Example #1
0
        public void Setup(eBoidType aType)
        {
            MyType = aType;

            // Register with the BoidManager;
            GameObject bmgo = GameObject.FindGameObjectWithTag("BoidManager");
            bm = bmgo.GetComponent<BoidManager>();
            bm.RegisterBoid(this);

            switch(aType)
            {
                case eBoidType.Normal:
                    MyAlgos.Add(new BoidAlgo_Avoidance(2.0f));
                    MyAlgos.Add(new BoidAlgo_Coherence(0.0005f));
                    MyAlgos.Add(new BoidAlgo_Alignment(4.0f));
                    MyAlgos.Add(new BoidAlgo_Bounds(1.0f));
                    MyVelocity = GetRandomStartingVelocity();
                    MyRepulsionRange = 1.0f;
                    MyRepulsionFactor = 1.0f;
                    break;
                case eBoidType.Predator:
                    MyAlgos.Add(new BoidAlgo_Bounds(1.0f));
                    MyAlgos.Add(new BoidAlgo_Coherence(1.0f));
                    MyVelocity = GetRandomStartingVelocity() * 0.2f;
                    MyRepulsionRange = 2.0f;
                    MyRepulsionFactor = 1.0f;
                    break;
                case eBoidType.Obstacle:
                    MyRepulsionRange = 4.0f;
                    MyRepulsionFactor = 2.0f;
                    break;
                default:
                    break;
            }

        }
Example #2
0
        public void SpawnBoid(eBoidType aBoidType, Vector3 aSpawnPos)
        {
 
            GameObject go = null;
            Boid newBoid = null;

            aSpawnPos.y = 0;

            switch (aBoidType)
            {
                case eBoidType.Normal:
                    go = (GameObject)GameObject.Instantiate(BoidPrefabNormal, aSpawnPos, Quaternion.identity);
                    break;
                case eBoidType.Predator:
                    go = (GameObject)GameObject.Instantiate(BoidPrefabPredator, aSpawnPos, Quaternion.identity);
                    break;
                case eBoidType.Obstacle:
                    go = (GameObject)GameObject.Instantiate(BoidPrefabObstacle, aSpawnPos, Quaternion.identity);
                    break;
            }
            
            if(go != null)
            {
                newBoid = (Boid)go.GetComponent("Boid");
            }
            
            newBoid.Setup(aBoidType);

            MyNumberOfBoids++;
            NumBoidsCounter.text = "Boid Count : " + MyNumberOfBoids.ToString();
        }