конструкция using и работа с GUI методами Begin/End

конструкция using и работа с GUI методами Begin/End

Сообщение PAX 02 май 2010, 16:19

Мучился я мучился и решил написать классы обертки для работы с методами GUILayout.BeginXXX и GUILayout.EndXXX. Проблема состоит в том, что при написании множества вложенных конструкций Begin/End часто забываешь их закрывать и начинаешь путаться что к чему относится. В общем решение было простое. Написал я несколько классов оберток:
Синтаксис:
Используется csharp
  public class GUILayoutScrollView : IDisposable
  {
    public GUILayoutScrollView(ref Vector2 scroll)
    {
      scroll = GUILayout.BeginScrollView(scroll);
    }

    public void Dispose()
    {
      GUILayout.EndScrollView();
    }
  }

  public class GUILayoutVertical : IDisposable
  {
    public GUILayoutVertical()
    {
      GUILayout.BeginVertical();
    }

    public void Dispose()
    {
      GUILayout.EndVertical();
    }
  }

  public class GUILayoutHorizontal : IDisposable
  {
    public GUILayoutHorisontal()
    {
      GUILayout.BeginHorizontal();
    }

    public void Dispose()
    {
      GUILayout.EndHorizontal();
    }
  }


А далее их использование упрощает и структурирует код:

Синтаксис:
Используется csharp
      using (new GUILayoutHorizontal())
      {
        if (GUILayout.Button("Кнопка1", GUILayout.Height(30.0F))) ...;

        GUILayout.Space(5.0F);

        if (GUILayout.Button("Кнопка1", GUILayout.Height(30.0F))) ...;

        GUILayout.Space(5.0F);

        if (GUILayout.Button("Кнопка1", GUILayout.Height(30.0F))) ...;
      }


Преимущества: структурированный код без необходимости закрывать блоки, они закрываются сами при выходе из блока using :)
Blitz3d to Unity Wiki
icq: 208084972
skype: pax62rus
Аватара пользователя
PAX
UNIт
 
Сообщения: 134
Зарегистрирован: 03 ноя 2009, 12:53
Откуда: Россия, Рязань
  • Сайт
  • ICQ

Re: конструкция using и работа с GUI методами Begin/End

Сообщение gnoblin 02 май 2010, 16:48

Модно (3A4OT)

Пости такие интересные решения почаще \m/
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: конструкция using и работа с GUI методами Begin/End

Сообщение Neodrop 02 май 2010, 17:12

Изящно, блин. Мне тоже хотелось сделать так же, но не пришла в голову идея с Dispose ! Классно!

(3A4OT)
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8423
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: конструкция using и работа с GUI методами Begin/End

Сообщение iq110 05 май 2018, 04:00

Только лучше сделать структуру, а то едитор будет много памяти жевать.
iq110
UNец
 
Сообщения: 3
Зарегистрирован: 01 май 2018, 23:50


Вернуться в Tips & Tricks

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

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