Программирование редактора 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 |
|
| |