Универсальное Options меню

Лучший способ помочь другим, поделиться своими находками.

Универсальное Options меню

Сообщение pestantium 15 фев 2011, 15:10

Вставьте метод прорисовки интерфейса когда необходимо показать меню. Подойдет для любой игры.
Синтаксис:
Используется csharp
void OnGUI()
{
        renderer.material.color = Color.red;
        GUI.BeginGroup(new Rect(Screen.width/2-150, Screen.height/2-200, 300, 400));
        GUI.Box(new Rect(0, 0, 300, 400), "Options");
        //Регулятор громкости
        GUI.Label(new Rect(5, 29, 50, 20), "Volume Level: ");
        AudioListener.volume = GUI.HorizontalSlider(new Rect(55, 35, 240, 20), AudioListener.volume, 0, 1);
        //Выбор качества картинки
        GUI.Label(new Rect(5, 70, 250, 20), "Graphic Level: ");
        if (GUI.Toggle(new Rect(10, 90, 100, 20), QualitySettings.currentLevel == QualityLevel.Fastest, "Fastest"))
            QualitySettings.currentLevel = QualityLevel.Fastest;
        if (GUI.Toggle(new Rect(10, 110, 100, 20), QualitySettings.currentLevel == QualityLevel.Fast, "Fast"))
            QualitySettings.currentLevel = QualityLevel.Fast;
        if (GUI.Toggle(new Rect(10, 130, 100, 20), QualitySettings.currentLevel == QualityLevel.Simple, "Simple"))
            QualitySettings.currentLevel = QualityLevel.Simple;
        if (GUI.Toggle(new Rect(10, 150, 100, 20), QualitySettings.currentLevel == QualityLevel.Good, "Good"))
            QualitySettings.currentLevel = QualityLevel.Good;
        if (GUI.Toggle(new Rect(10, 170, 100, 20), QualitySettings.currentLevel == QualityLevel.Beautiful, "Beautiful"))
            QualitySettings.currentLevel = QualityLevel.Beautiful;
        if (GUI.Toggle(new Rect(10, 190, 100, 20), QualitySettings.currentLevel == QualityLevel.Fantastic, "Fantastic"))
            QualitySettings.currentLevel = QualityLevel.Fantastic;

        //Закрыть окно
        if (GUI.Button(new Rect(100, 360, 100, 20), "Close"))
        {
            isActive = false;
            renderer.material.color = Color.white;
        }
        GUI.EndGroup();
}
 
Созданные игры: MemoUp, Stop Robots, Hippo Gum, Rainbow Team
Аватара пользователя
pestantium
UNITрон
 
Сообщения: 269
Зарегистрирован: 23 сен 2010, 19:30
Откуда: Украина, Кировоград
  • ICQ

Re: Универсальное Options меню

Сообщение Andy Ion 15 фев 2012, 00:10

Немного изменений вывода пресетов качества под реалии Unity 3.5, константы, думаю, догадаетесь подсунуть :):

Изображение

Синтаксис:
Используется csharp
string[] names = QualitySettings.names;
for (int i = 0; i < names.Length; i++)
                        {
                                if (i == QualitySettings.GetQualityLevel())
                                {
                                        if (GUI.Button(new Rect(10, 10 + (i * BUTTON_HEIGTH), BUTTON_WIDTH, BUTTON_HEIGTH), ">>" + names[i] + "<<"))
                                        {
                                                QualitySettings.SetQualityLevel(i, true);
                                        }
                                }
                                else
                                {
                                        if (GUI.Button(new Rect(10, 10 + (i * BUTTON_HEIGTH), BUTTON_WIDTH, BUTTON_HEIGTH), names[i]))
                                        {
                                                QualitySettings.SetQualityLevel(i, true);
                                        }
                                }
                        }
Изображение
Форум про инди-игры и их разработку
Аватара пользователя
Andy Ion
UNец
 
Сообщения: 18
Зарегистрирован: 14 авг 2011, 21:04
Откуда: Russia, Sochi
Skype: vermilionx
  • Сайт
  • ICQ

Re: Универсальное Options меню

Сообщение jarkevithwlad 28 дек 2012, 19:37

скажите плис как в скрипте оставить максимальную графику и выключить вертикальную синхронизацию или желательно дайте команды для скрипта для полной настройки графики
jarkevithwlad
UNец
 
Сообщения: 35
Зарегистрирован: 05 апр 2012, 22:51


Вернуться в Исходники (Копилка)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5