Esempio n. 1
0
 private static void SetDronesSpeed(float speed)
 {
     foreach (var copter in Copters)
     {
         CopterMoveController copterMoveController = copter.GetComponent <CopterMoveController>();
         copterMoveController.speedX = speed;
         copterMoveController.speedY = speed;
     }
 }
Esempio n. 2
0
    private void FixDroneOrder()
    {
        Copters.Sort((x1, x2) => x1.transform.position.x.CompareTo(x2.transform.position.x));
        mainCopter = Copters[0];
        bool isCorrectStructure = true;

        for (int i = 0; i < Copters.Count; i++)
        {
            //Мне стыдно за этот код, это было написано за 1 ночь :)
            CopterMoveController _copter = Copters[i].GetComponent <CopterMoveController>();
            if (Copters[i] == mainCopter)
            {
                continue;
                _copter.speedX = 0;
                _copter.speedY = 0;
            }
            ;
            if (Mathf.Abs(mainCopter.transform.position.x - Copters[i].transform.position.x) < Constant.droneCoordDifference * i)
            {
                _copter.speedX    += Constant.droneCorrectionSpeed;
                isCorrectStructure = false;
            }
            else if (Mathf.Abs(mainCopter.transform.position.x - Copters[i].transform.position.x) > Constant.maxDroneCoordDifference * i)
            {
                _copter.speedX    += mainCopter.transform.position.x - Copters[i].transform.position.x > 0 ? Constant.droneCorrectionSpeed : -Constant.droneCorrectionSpeed;
                isCorrectStructure = false;
            }
            else
            {
                _copter.speedX = 0;
            }

            if (mainCopter.transform.position.y - Copters[i].transform.position.y < Constant.droneCoordDifference * i)
            {
                _copter.speedY    -= Constant.droneCorrectionSpeed;
                isCorrectStructure = false;
            }
            else if (Mathf.Abs(mainCopter.transform.position.y - Copters[i].transform.position.y) > Constant.maxDroneCoordDifference * i)
            {
                _copter.speedY    += mainCopter.transform.position.y - Copters[i].transform.position.y > 0 ? Constant.droneCorrectionSpeed : -Constant.droneCorrectionSpeed;
                isCorrectStructure = false;
            }
            else
            {
                _copter.speedY = 0;
            }
        }

        if (isCorrectStructure)
        {
            SetDronesSpeed(mainCopter.GetComponent <CopterMoveController>().speedY);
        }
    }