| Программирование редактора Unity | 
|  | 
| 
| Nordicus666 | Дата: Пятница, 24 Марта 2017, 15:29 | Сообщение # 1 |  | был не раз Сейчас нет на сайте | сам не особо разбираюсь, потому нужен скрипт с пояснениями, либо подробные объяснения либо ссылки на статьи с ответом на мой вопрос каким образом из Editor скрипта сделать скрытие и показывание в инспекторе определенных переменных в зависимости от еще одной переменном в текущем скрипте?
 имеется скрипт, в нем есть много-много переменных и одна переменная Type, надо что бы в инспекторе показывались только определенные и скрывались остальные в зависимости от Type
 |  |  |  |  | 
| 
| EchoIT | Дата: Пятница, 24 Марта 2017, 15:34 | Сообщение # 2 |  |   старожил Сейчас нет на сайте | Nordicus666, 
 Лень писать большой код или искать инфу, где ты можешь это сам почитать, но делается это примерно так (в скрипте редактора):
 
 Код public override void OnInspectorGUI()
 {
 // Если не рисуешь стандартный инспектор методом DrawDefaultInspector(), то тут нужно вывести выбор твоего Type.
 
 if (Type == Type.NeededType) // На примере Type вида enum
 {
 // Тут нужно отображать тут нужные элементы редактора/переменные
 }
 }
 
 Разумеется, дефолтный инспектор ты не рисуешь. Или можно рисовать, но сделать все те переменные скрытыми в инспекторе, используя [HideInInspector], и отрисовывать через скрипт редактора нужные, но зачем?
 
 Можно так же switch использовать.
 
 Тут ещё есть информация: Unity Learn. Лучше это подробно изучи, потому что там вполне может оказаться ещё что-то полезное для тебя.
 
 Долгожданный анонсик: State of War
 
 
 Сообщение отредактировал EchoIT - Пятница, 24 Марта 2017, 15:40 |  |  |  |  | 
| 
| Nordicus666 | Дата: Пятница, 24 Марта 2017, 17:36 | Сообщение # 3 |  | был не раз Сейчас нет на сайте | а сами команды скрытия и показывания переменных с точки зрения Editor как выглядят? |  |  |  |  | 
| 
| EchoIT | Дата: Пятница, 24 Марта 2017, 17:46 | Сообщение # 4 |  |   старожил Сейчас нет на сайте | Nordicus666, ну по сути они выглядят как GUILayout.Toggle("Название", переменная_в_которой_значение) или нечто подобное. Т.е. ты просто пишешь, какое поле отображать (или не пишешь/пихаешь в if или switch, чтобы не отображать, когда не надо). 
 Поля там разные, все есть в справке. Toggle - это галочка, типа как для bool. И вроде для эдитора надо EditorGUILayout, но это не точно (я сам, к сожалению, не разобрался, где как правильнее использовать, поэтому мешаю всё подряд).
 
 Долгожданный анонсик: State of War
 |  |  |  |  | 
| 
| Ranger | Дата: Воскресенье, 26 Марта 2017, 06:16 | Сообщение # 5 |  |   почти ветеран Сейчас нет на сайте | Цитата Nordicus666 (  )  а сами команды скрытия и показывания переменных с точки зрения Editor как выглядят?
 Код     public override void OnInspectorGUI(){
 
 serializedObject.Update();
 
 if (Type == Type.NeededType) // На примере Type вида enum
 {
 // Тут нужно отображать тут нужные элементы редактора/переменные
 var prop = serializedObject.FindProperty("myField");
 EditorGUILayout.PropertyField(prop, false);
 }
 
 // Apply changes
 serializedObject.ApplyModifiedProperties();
 }
link
 
 
   
 
 Сообщение отредактировал Ranger - Воскресенье, 26 Марта 2017, 06:17 |  |  |  |  |