コード例 #1
0
    void OnGUI()
    {
        GUI.depth = 1;                                                  // Устанавливаем дальность гуи от камеры на первый слой
        GUI.skin  = GameSkin;                                           // Устанавливаем игровой скин

        if (SecondProfileSelection)                                     // Если переменная SecondProfileSelection правда
        {
            // Изменяем размер матрицы под новый экран и отрисовываем элементы с середины экрана по ширине и с середины по высоте
            GUI.matrix = Matrix4x4.TRS(new Vector3(Screen.width / 2, Screen.height / 2, 0), Quaternion.identity, new Vector3(RatioH, RatioH, 1));
            GUI.BeginGroup(new Rect(-153, -450, 306, 390), BLSFT);                                                                                                              // Начинаем группу и затемняем окно настройки уровня

            if (Kep.SecondActiveProfile == 10)                                                                                                                                  // Если у второго игрока нет активного профиля
            {
                if (GUI.Button(new Rect(15, 39, 276, 40), "_ _ _ _ _", "ButtonProfileSelection"))                                                                               // Отрисовываем кнопку с пустым именем профиля и если она нажата
                {
                    ButtonProfileSelectionPushed = ButtonProfileSelectionPushed ? false : true;                                                                                 // Меняем состояние переменной ButtonProfileSelectionPushed на противоположное
                }
            }
            else                                                                                                                                // Иначе если у второго игрока есть актиивный профиль
            {
                if (GUI.Button(new Rect(15, 39, 276, 40), Kep.NamesProfiles[Kep.SecondActiveProfile], "ButtonProfileSelection"))                // Отрисовываем кнопку с выбранным именем профиля для второго игрока и если она нажата
                {
                    ButtonProfileSelectionPushed = ButtonProfileSelectionPushed ? false : true;                                                 // Меняем состояние переменной ButtonProfileSelectionPushed на противоположное
                }
            }

            Rect rect = new Rect(15, 95, 276, 40);                                                              // Объявляем новый прямоугольник

            for (byte a = 0; a < 5; a++)                                                                        // Продолжаем цикл пока не отрисуем все кнопки
            {
                if (ButtonProfileSelectionPushed)                                                               // Если кнопка выбора профиля была нажата
                {
                    if (GUI.Button(rect, Kep.NamesProfiles[a], "ButtonProfileSelection"))                       // Отрисовываем кнопки отображающие имя профиля с номером цикла и если одна из них была нажата
                    {
                        if (Kep.ActiveProfile != a)                                                             // И если мы выбрали друой профиль отличный от профиля игрока
                        {
                            if (Kep.NamesProfiles[a] != "_ _ _ _ _")                                            // И если это профиль не с пустым именем
                            {
                                if (GM.Currentkep != GM.Kep)
                                {
                                    GM.Currentkep = GM.Kep;                                                                             // Если в текущей базе данных лежит не глобальная база данных ложим в текущую базу данных глобальную базу данных
                                }
                                StartCoroutine(Kep.FillActiveObjsTexs(a, false));                                                       // Заполняем переменные фотографий активных объектов для второго игрока
                                PM.StartEnabled = true;                                                                                 // Ставим переменной PM.StartEnabled значение правда означающее что можно нажать кнопку старта
                            }
                        }
                        else                                                                                                                                                    // Иначе если мы выбрали для второго игрока тотже профиль что и для первого
                        {
                            if (GM.Currentkep != GM.LocalKep)
                            {
                                GM.Currentkep = GM.LocalKep;                                                            // Если в текущей базе данных лежит не локальная база данных ложим в текущую базу данных локальную базу данных
                            }
                            StartCoroutine(Kep.FillActiveObjsTexs(a, true));                                            // Заполняем переменные фотографий активных объектов для второго игрока
                        }
                    }
                    rect.y += 45;                                                                                                                                       // Уменьшаем высоту следующей кнопки на 45 пикселей
                }
            }
            GUI.EndGroup();                                                                                                                                             // Заканчиваем группу
        }
    }