Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > 2D/GUI

2D/GUI Вопросы на тему 2D графики и интерфейсов

Ответ
 
Опции темы
Старый 26.02.2013, 04:35   #1
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
EditorGUILayout.EnumPopup

Имеем простой класс
public class MyClass
{
  public string result="";
}
Делаем для него расширение в инспекторе и засовываем туда enum
[CustomEditor(typeof(MyClass))]
public class ClassExp : Editor
{
 public enum MyEnum
   {
    var1, var2, var3, var4
   }
   MyEnum myEnum=MyEnum.var2;

   override public void OnInspectorGUI()
    {
       MyClass mClass=(MyClass)target;
       myEnum = (MyEnum)EditorGUILayout.EnumPopup("Select new variable:",myEnum);
       mClass.result=myEnum.ToString();
    }
}
В итоге получаем для нашего обьекта дополнительное поле в инспекторе. Выставляем в инспекторе значение энума отличное от var2, запускаем плеймод. В итоге в инспекторе видим дефолтное значение перечислителя var2. С какого перепугу за три часа причину так и не нашел. Приводить энум к инту пробовал(советовали на офф форуме)- результат тот же, сбрасывает на значение, установленное при обьявлении.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 26.02.2013, 07:56   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: EditorGUILayout.EnumPopup

Попробуй в конце написать
if (GUI.changedEditorUtility.SetDirty(mClass); 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 26.02.2013, 10:21   #3
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: EditorGUILayout.EnumPopup

Печально, но все одно сбрасывает.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 26.02.2013, 10:29   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: EditorGUILayout.EnumPopup

Нашел ошибку. Надо добавить в редактор инициализацию переменной значением из скрипта:
void OnEnable()
{
   
myEnum = (MyEnum)Enum.Parsetypeof(MyEnum),((MyClass)target).result);

__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Lestar (26.02.2013)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com