private static void SetDronesSpeed(float speed) { foreach (var copter in Copters) { CopterMoveController copterMoveController = copter.GetComponent <CopterMoveController>(); copterMoveController.speedX = speed; copterMoveController.speedY = speed; } }
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); } }