Читаю в mdsn описание Array. Вопрос такой. Есть ли методы, которые позволят из одномерного массива получить минимальное значение (максимальное тоже) и номер элемента этих значений? Сейчас реализовано через foreach но получается приходится вызывать в методе foreach аж 6 раз для разных исходных данных.
Метод делает на самом деле простую вещь - определяет, какие значения на каких гранях кубика
NumberChild - коллекция значений на гранях кубика (от 1 до 6)
public int Unit_Up_Field, Unit_Down_Field, Unit_W_Field, Unit_S_Field, Unit_A_Field, Unit_D_Field; // значения на гранях кубика - это будет преобразовано в массив для разработки дальнейшего кода
public void Analize_Dice_Orientation () {
// анализ значений кубика
MaxCordInField = 0f;
foreach(GameObject UnitChild in NumberChild) {
if (UnitChild.transform.position.y > MaxCordInField) {
MaxCordInField = UnitChild.transform.position.y;
Unit_Up_Field = (int)NumberChild.IndexOf(UnitChild);
}
}
MaxCordInField = 2f;
foreach(GameObject UnitChild in NumberChild) {
if (UnitChild.transform.position.y < MaxCordInField) {
MaxCordInField = UnitChild.transform.position.y;
Unit_Down_Field = (int)NumberChild.IndexOf(UnitChild);
}
}
MaxCordInField = this.transform.position.x-2f;
foreach(GameObject UnitChild in NumberChild) {
if (UnitChild.transform.position.x > MaxCordInField) {
MaxCordInField = UnitChild.transform.position.x;
Unit_W_Field = (int)NumberChild.IndexOf(UnitChild);
}
}
MaxCordInField = this.transform.position.x+2f;
foreach(GameObject UnitChild in NumberChild) {
if (UnitChild.transform.position.x < MaxCordInField) {
MaxCordInField = UnitChild.transform.position.x;
Unit_S_Field = (int)NumberChild.IndexOf(UnitChild);
}
}
MaxCordInField = this.transform.position.z-2f;
foreach(GameObject UnitChild in NumberChild) {
if (UnitChild.transform.position.z > MaxCordInField) {
MaxCordInField = UnitChild.transform.position.z;
Unit_A_Field = (int)NumberChild.IndexOf(UnitChild);
}
}
MaxCordInField = this.transform.position.z+2f;
foreach(GameObject UnitChild in NumberChild) {
if (UnitChild.transform.position.z < MaxCordInField) {
MaxCordInField = UnitChild.transform.position.z;
Unit_D_Field = (int)NumberChild.IndexOf(UnitChild);
}
}
}
Печенкой чую, что можно оптимизировать но именно для случая с массивом, 6 параметров не оптимально