Пятница, 19 Апреля 2024, 14:07

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Динамическое меню (Для новичков может быть полезен)
Динамическое меню
SomeOneInTheMaskДата: Четверг, 29 Августа 2013, 21:20 | Сообщение # 1
Stranger
Сейчас нет на сайте
Этот скрипт автоматически выравняет кнопочки в меню, и Вам не придется рассчитывать координаты их. Нужно просто указать названия кнопок и названия функций, которые вызываются при их нажатии. И меню готово!

Код

using UnityEngine;
using System.Collections;

public class Menu : MonoBehaviour {
   public GUIStyle styleTopMenu;
     
   private string[] menuTitles={"Играть","Опции","Выход"};        // названия кнопок
     
   private string[] functionNames={"Play","Options","Exit"};       // названия функций, соответствующие кнопкам
     
   private int cntTitile;             //количество кнопок
   private int cntParts;            //на сколько частей мы делим экран без одной части
     
   void Start(){
    cntTitile=menuTitles.Length;
    cntParts=((cntTitile+1)*3);
   }
     
   void OnGUI(){
      
    GUI.Label(new Rect(         //выводим заголовок
     Screen.width/4,
     Screen.height/cntParts,
     Screen.width/2,
     Screen.height*2/cntParts),
     "Меню",styleTopMenu);
      
      
    for(int cnt=0;cnt<cntTitile;cnt++){         //в цикле выводим кнопочки
       
     if(GUI.Button(new Rect(
      Screen.width/4,
      Screen.height*(cnt+1)*3/cntParts,
      Screen.width/2,
      Screen.height*2/cntParts),   
      menuTitles[cnt])){
                    //проверка: не забыл ли пользователь указать функцию для какой нибудь кнопки
      if(functionNames.Length>cnt) SendMessage(functionNames[cnt]);  //если все нормально то отправляем сообщение с названием функции
      else Debug.Log("Error! You'd forgotten add name of function!");
     }
    }
   }
    //далее функции, и то что они делают
   private void Play(){
    Application.LoadLevel(1);
   }
     
   private void Options(){
    Application.LoadLevel(3);
   }
     
   private void Exit(){
    Application.Quit();
   }
}


Если у кого есть какие-то идеи по улучшению скрипта, то пишите smile


Карта моего канала по созданию игр на Unity3d, можно даже заказать урок бесплатно)

Сообщение отредактировал SomeOneInTheMask - Пятница, 30 Августа 2013, 12:47
JHawkДата: Пятница, 30 Августа 2013, 06:24 | Сообщение # 2
めゃくちゃちゃ
Сейчас нет на сайте
SomeOneInTheMask, я делал меню с помощью GUI.Toolbar'a. Он сам создает кнопки, задает им размер и т.д.
Reference если интересно
SomeOneInTheMaskДата: Пятница, 30 Августа 2013, 12:22 | Сообщение # 3
Stranger
Сейчас нет на сайте
Цитата (JHawk)
SomeOneInTheMask, я делал меню с помощью GUI.Toolbar'a. Он сам создает кнопки, задает им размер и т.д.
Reference если интересно

тоже вариант


Карта моего канала по созданию игр на Unity3d, можно даже заказать урок бесплатно)
GameLoperДата: Пятница, 30 Августа 2013, 12:25 | Сообщение # 4
Нуб в гейм-деве
Сейчас нет на сайте
Добавь комментарии, а то тут есть супер-нубы

Single of game tycoon = 10%
SomeOneInTheMaskДата: Пятница, 30 Августа 2013, 12:38 | Сообщение # 5
Stranger
Сейчас нет на сайте
Цитата (GameLoper)
Добавь комментарии, а то тут есть супер-нубы

сейчас сделаю smile


Карта моего канала по созданию игр на Unity3d, можно даже заказать урок бесплатно)
EchoITДата: Пятница, 30 Августа 2013, 12:54 | Сообщение # 6
старожил
Сейчас нет на сайте
GameLoper, типа тебя? dry

А по теме - не очень полезная вещь.


Долгожданный анонсик: State of War

Сообщение отредактировал EchoIT - Пятница, 30 Августа 2013, 12:55
GameLoperДата: Пятница, 30 Августа 2013, 12:57 | Сообщение # 7
Нуб в гейм-деве
Сейчас нет на сайте
Цитата (EchoIT)
типа тебя? dry

я хоть нуб ,ну не до такой степени, в вторых ты меня знаешь?


Single of game tycoon = 10%
SomeOneInTheMaskДата: Пятница, 30 Августа 2013, 13:03 | Сообщение # 8
Stranger
Сейчас нет на сайте
Цитата (EchoIT)
А по теме - не очень полезная вещь.

я специально уточнил в описании: "Для новичков может быть полезен" smile


Карта моего канала по созданию игр на Unity3d, можно даже заказать урок бесплатно)
smoke_waterДата: Среда, 11 Сентября 2013, 15:17 | Сообщение # 9
был не раз
Сейчас нет на сайте
понадобится ))) спасибо автору cool

Час це вода.:)
SomeOneInTheMaskДата: Среда, 11 Сентября 2013, 21:34 | Сообщение # 10
Stranger
Сейчас нет на сайте
Цитата (smoke_water)
понадобится ))) спасибо автору cool

Слава Богу)


Карта моего канала по созданию игр на Unity3d, можно даже заказать урок бесплатно)
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Динамическое меню (Для новичков может быть полезен)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг