Example #1
0
    void Start()
    {
        if (heightIsFixed)
        {
            dronePrefab.heightFixed = true;
            Leader[] leaders = FindObjectsOfType <Leader>();

            foreach (Leader leader in leaders)
            {
                leader.transform.position = new Vector3(leader.transform.position.x, 0, leader.transform.position.z);
            }
        }
        else
        {
            dronePrefab.heightFixed = false;
        }

        drones  = new List <Follower>();
        leaders = new List <Leader>();
        if (COLUMS != 0)
        {
            colums = COLUMS;
        }
        else
        {
            COLUMS = colums;
        }
        if (ROWS != 0)
        {
            rows = ROWS;
        }
        else
        {
            ROWS = rows;
        }

        startPos = new Vector3(-colums / 2 * offset, 0, rows / 2 * offset);

        int idCount = 0;

        GameObject droneHolder = new GameObject();

        droneHolder.name = "DroneHolder";
        GameObject targetHolder = new GameObject();

        targetHolder.name = "TargetHolder";

        for (int c = 0; c < colums; c++)
        {
            for (int r = 0; r < rows; r++)
            {
                Follower f = Instantiate(dronePrefab, startPos + nextPos, Quaternion.identity);
                f.transform.parent = droneHolder.transform;

                Leader l = Instantiate(leaderPrefab, startPos + nextPos, Quaternion.identity);
                l.transform.parent = targetHolder.transform;
                l.ID   = idCount;
                l.name = "Leader " + l.ID.ToString();
                leaders.Add(l);
                if (!heightIsFixed)
                {
                    l.transform.Translate(0, 10, 0);
                }

                drones.Add(f);

                nextPos.z -= offset;
                f.ID       = idCount++;
                f.name     = "Drone " + f.ID.ToString();


                f.AssignLeader(l);
                //f.HardcodedCustomLeaderAssignment();
            }

            nextPos.z  = 0;
            nextPos.x += offset;
        }
    }